Java 逆引き集 | 配列→コレクション変換(Arrays.asList 等) — API 互換

Java Java
スポンサーリンク

配列→コレクション変換(Arrays.asList 等) — API 互換

Javaでは「配列」と「コレクション(List, Set, Mapなど)」がよく登場します。
配列は固定長・基本的な構造コレクションは柔軟で便利なAPIが豊富
両者を相互に変換できると、ライブラリやフレームワークとの互換性が高まります。


基本の変換方法

Arrays.asList

import java.util.*;

String[] arr = {"A", "B", "C"};
List<String> list = Arrays.asList(arr);

System.out.println(list); // [A, B, C]
Java
  • 特徴: 配列を「固定サイズのList」に変換。
  • 注意: 要素の追加・削除はできない(UnsupportedOperationException)。
  • 変更は反映: 配列を変更するとListにも反映される。
arr[0] = "X";
System.out.println(list); // [X, B, C]
Java

可変Listにしたい場合

String[] arr = {"A", "B", "C"};
List<String> list = new ArrayList<>(Arrays.asList(arr));

list.add("D"); // OK
System.out.println(list); // [A, B, C, D]
Java

👉 Arrays.asList → new ArrayList で「自由に追加・削除できるList」に変換。


他の変換方法

Stream API

String[] arr = {"A", "B", "C"};
List<String> list = Arrays.stream(arr).toList(); // Java 16+
System.out.println(list); // [A, B, C]
Java
  • 特徴: toList() は不変リストを返す。
  • Java 8〜: .collect(Collectors.toList()) を使う。
List<String> list = Arrays.stream(arr)
                          .collect(Collectors.toList());
Java

Set に変換

String[] arr = {"A", "B", "A"};
Set<String> set = new HashSet<>(Arrays.asList(arr));
System.out.println(set); // [A, B]
Java

👉 重複を排除したいときは Set に変換。


例題で練習

例題1: 配列からListに変換してソート

Integer[] nums = {5, 2, 9, 1};
List<Integer> list = new ArrayList<>(Arrays.asList(nums));
Collections.sort(list);
System.out.println(list); // [1, 2, 5, 9]
Java

例題2: 配列からSetに変換して重複排除

String[] fruits = {"apple", "banana", "apple"};
Set<String> set = new HashSet<>(Arrays.asList(fruits));
System.out.println(set); // [banana, apple]
Java

例題3: 配列からStreamでフィルタ

String[] arr = {"A", "BB", "CCC"};
List<String> list = Arrays.stream(arr)
                          .filter(s -> s.length() > 1)
                          .toList();
System.out.println(list); // [BB, CCC]
Java

テンプレート集

配列 → List(固定サイズ)

List<T> list = Arrays.asList(array);
Java

配列 → List(可変サイズ)

List<T> list = new ArrayList<>(Arrays.asList(array));
Java

配列 → Set

Set<T> set = new HashSet<>(Arrays.asList(array));
Java

配列 → Stream → List

List<T> list = Arrays.stream(array).collect(Collectors.toList());
Java

実務のコツと落とし穴

  • Arrays.asList は固定サイズ: add/remove はできない。必要なら ArrayList に包む。
  • 配列とListはリンクする: 配列を変更すると List に反映される。独立させたいなら新しいコレクションにコピー。
  • Stream APIは柔軟: フィルタや変換を組み合わせて一気に処理できる。
  • Set変換で重複排除: データクレンジングに便利。

まとめ

  • 配列→コレクション変換は Arrays.asList が基本。
  • 可変操作したいなら ArrayList に包む。
  • Stream API でフィルタや変換も可能。
  • Set に変換すれば重複排除。

👉 練習課題として「文字列配列を List に変換し、ソートしてから Set に変換」してみると、配列→コレクション変換の流れが体感できます。

タイトルとURLをコピーしました