ぽこやかざん雑記

データエンジニア / 下町モルモット / 広島カープファン / 深夜の馬鹿力 / おくやま

Javaの配列とListの相互変換方法

Javaにおいて、配列とListの相互変換をしたい場合のメモ。
配列をListに変換する方法と、Listを配列に変換する方法について記述する。

配列をListに変換

配列をListに変換するためには、java.util.ArraysクラスのasList()メソッドを使用しする。
このメソッドは配列を固定サイズのListに変換する。

String[] array = {"apple", "banana", "cherry"};
List<String> list = Arrays.asList(array);
System.out.println(list.getClass().getName());

// 出力
java.util.Arrays$ArrayList

ただし、注意点として、この方法で作成されたListは固定サイズであるため、要素の追加や削除はできない。
↓参考にさせていただいた記事↓ https://qiita.com/HomMarkHunt/items/c0172bd6c9801c5768d2

Listを配列に変換

Listを配列に変換するには、ListインターフェースのtoArray()メソッドを使用する。
このメソッドには以下の2つの形式がある。

toArray()メソッド

このメソッドは、Object[]型の配列を返す。
配列の具体的な型が明示しない場合に使う。

List<String> list = Arrays.asList("apple", "banana", "cherry");
Object[] array = list.toArray();
System.out.println(array.getClass().getName());

// 出力
[Ljava.lang.Object;

toArray(T[] a)メソッド

このメソッドは、指定した型の配列を引数として受け取り、リストの要素をこの配列に格納して返す。
配列がリストのサイズより小さい場合は、新しい配列が内部で作成される。

List<String> list = Arrays.asList("apple", "banana", "cherry");
// 配列のサイズは0でもリストのサイズに応じて新しい配列が作成される
String[] array = list.toArray(new String[0]);
System.out.println(array.getClass().getName());

// 出力
[Ljava.lang.String;