Javaの配列からリストとセットを作成するサンプルです。
目次
リスト | addAllとは(配列からリストを作成) / addAllのサンプル |
asListとは(配列からリストを作成) / asListのサンプル | |
セット | 配列からセットを作成(addAll) |
addAllとは(配列からリストを作成)
public static <T> boolean addAll(Collection<? super T> c,T... elements) |
- CollectionクラスのaddAllメソッドは、配列からリストを作成します。
- 1つめの引数にリストをセットし2つめの引数に配列をセットします。
- リストを変更しても元の配列は変更されません。(ArraysクラスのasListメソッドとの違い)
- リストに追加または削除を行うことが可能です。元の配列は変更されません。(ArraysクラスのasListメソッドとの違い)
- Java1.5から導入されました。
addAllのサンプル
package test1;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
// 配列
String[] array1 = {"赤","黄","青"};
// リストを作成
List<String> list1 = new ArrayList<>();
// 配列からリストを作成
Collections.addAll(list1, array1);
System.out.println(list1); // [赤, 黄, 青]
}
}
9行目は、配列です。
12行目は、リストです。中身は空です。
15行目は、CollectionsクラスのaddAllメソッドで配列の値をリストにセットしています。
17行目は、リストの値が表示されています。
作成したリストに値の追加や削除をしても、配列の値は変更されません。
9行目の配列の値がintなどの基本型の場合15行目でコンパイルエラーになります。
リストは参照型のみ可能です。
以下はJava8 API仕様のCollectionsクラスのaddAllメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Collections.html#addAll-java.util.Collection-T...-
asListとは(配列からリストを作成)
public static <T> List<T> asList(T... a) |
- ArraysクラスのasListメソッドは、引数の配列をリストにして返します。
- リストを変更すると元の配列も変更されます。(CollectionsクラスのaddAllメソッドとの違い)
- リストに追加または削除を行うと例外が発生します。(CollectionsクラスのaddAllメソッドとの違い)
- 元の配列に影響を与えない新規のリストを作成する場合は、CollectionsクラスのaddAllメソッドを使用します。
asListのサンプル
package test1;
import java.util.Arrays;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
// 配列
String[] array1 = {"赤","黄","青"};
// 配列からリストを作成
List<String> list1 = Arrays.asList(array1);
System.out.println(list1); // [赤, 黄, 青]
}
}
11行目は、ArraysクラスのasListメソッドで配列の値をリストにセットしています。
13行目は、リストの値が表示されています。
作成したリストに値の追加や削除を行うとUnsupportedOperationException例外が発生します。
以下はJava8 API仕様のArraysクラスのasListメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Arrays.html#asList-T...-
配列からセットを作成(addAll)
package test1;
import java.util.HashSet;
import java.util.Collections;
import java.util.Set;
public class Test1 {
public static void main(String[] args) {
// 配列
String[] array1 = {"赤","黄","青"};
// セットを作成
Set<String> set1 = new HashSet<>();
// 配列からセットを作成
Collections.addAll(set1, array1);
System.out.println(set1); // [青, 赤, 黄]
}
}
15行目は、addAllメソッドで配列からセットを作成しています。
9行目の配列の値がintなどの基本型の場合15行目でコンパイルエラーになります。
セットは参照型のみ可能です。
関連の記事
Java 配列の仕組みと使い方のサンプル
Java ArrayListとListの使い方のサンプル
Java リスト・セットから配列を作成(toArray)