🎯

【Java】Listから配列へ変換

2024/02/08に公開

Listから配列へ変換

Listから配列へ変換する方法をいくつか紹介します。

for文とget()

// リスト
List<Integer> li = List.of(0, 1, 2);
// 配列
int[] ar = new int[li.size()];
// for文とget()
for (int i = 0; i < li.size(); i++) {
    ar[i] = li.get(i);
}
System.out.println(Arrays.toString(ar)); // 出力結果 -> [0, 1, 2]

toArray()

// リスト
List<Integer> li = List.of(0, 1, 2);
// toArray
Integer[] ar = li.toArray(new Integer[li.size()]);

System.out.println(Arrays.toString(ar)); // 出力結果 -> [0, 1, 2]

toArrayは、コレクションの要素を配列に格納してその配列を返します。
コレクションの要素数 > 配列の長さ の場合は、要素を格納するための十分なサイズの配列が新たに割り当てられます。
コレクションの要素数 < 配列の長さ の場合は、その配列がそのまま使用され、余分なスロットにはデフォルト値が入ります。


stream().toArray()

// リスト
List<Integer> li = List.of(0, 1, 2);
// stream().toArray()
Integer[] ar = li.stream().toArray(Integer[]::new);

System.out.println(Arrays.toString(ar)); // 出力結果 -> [0, 1, 2]

stream().toArray()は、コレクションの要素を配列に格納してその配列を返します。


【参考】リストをプリミティブ型の配列へ変換する方法

上記のstream().toArray()を使ったコードを例にリストをプリミティブ型の配列へ変換します。

// リスト
List<Integer> li = List.of(0, 1, 2);
// mapToInt()
int[] ar = li.stream().mapToInt(Integer::intValue).toArray();

System.out.println(Arrays.toString(ar)); // 出力結果 -> [0, 1, 2]

Discussion