Java で新しい List を作成する方法
Java における List は、複数の要素を順番に格納できるコレクションインターフェースです。様々な実装クラスがありますが、最も一般的なのは ArrayList
と LinkedList
です。
List の作成
ArrayList を作成する
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// ジェネリクスを使って要素の型を指定
List<String> myList = new ArrayList<>();
// 要素を追加
myList.add("apple");
myList.add("banana");
myList.add("orange");
// 要素を表示
for (String fruit : myList) {
System.out.println(fruit);
}
}
}
LinkedList を作成する
import java.util.LinkedList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<Integer> myList = new Li nkedList<>();
myList.add(1);
myList.add(2);
myList.add(3);
// 要素を表示
for (int number : myList) {
System.out.println(number);
}
}
}
説明
import java.util.ArrayList;
やimport java.util.LinkedList;
は、必要なクラスをインポートします。List<String>
やList<Integer>
は、ジェネリクスを使って List の要素の型を指定します。new ArrayList<>()
やnew LinkedList<>()
で List のインスタンスを作成します。myList.add()
メソッドで要素を追加します。for
ループを使って要素を順番に処理します。
重要なポイント
- ArrayList はインデックスによるアクセスが高速ですが、要素の挿入や削除は遅いです。
- LinkedList は要素の挿入や削除が高速ですが、インデックスによるアクセスは遅いです。
- 使用する List の実装クラスは、アプリケーションの要件に応じて選択してください。
Arrays.asList()
メソッドを使って配列から List を作成できますが、作成される List は不変です。- Java 9 以降では、
List.of()
メソッドを使って不変の List を簡単に作成できます。
備考
- List の他にも、Set, Map などのコレクションインターフェースがあります。
- コレクションフレームワークは、Java でデータ構造を扱うための重要なツールです。
コード解説
コード1: ArrayList の作成と使用
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// ジェネリクスを使って要素の型を指定
List<String> myList = new ArrayList<>();
// 要素を追加
myList.add("apple");
myList.add("banana");
myList.add("orange");
// 要素を表示
for (String fruit : myList) {
System.out.println(fruit);
}
}
}
- import java.util.ArrayList;:
ArrayList
クラスをインポートします。 - import java.util.List;:
List
インターフェースをインポートします。 - List<String> myList = new ArrayList<>();: ジェネリクスを使って
String
型の要素を持つ空のArrayList
を作成し、myList
という変数に代入します。 - myList.add("apple");:
myList
に "apple" を追加します。 - for (String fruit : myList) { ... }:
myList
の各要素をfruit
変数に代入し、ループで処理します。 - System.out.println(fruit);:
fruit
の値を出力します。
コード2: LinkedList の作成と使用
import java.util.LinkedList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<Integer> myList = new Li nkedList<>();
myList.add(1);
myList.add(2);
myList.add(3);
// 要素を表示
for (int number : myList) {
System.out.println(number);
}
}
}
- myList.add(1);:
myList
に 1 を追加します。
Arrays.asList() を使用して配列から List を作成する
import java.util.Arrays;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
String[] fruits = {"apple", "banana", "orange"};
List<String> myList = Arrays.asList(fruits);
// 注意: この List は不変です
}
}
Arrays.asList()
メソッドは、配列から List を作成します。- しかし、作成された List は不変であるため、要素を追加や削除することはできません。
Collections.addAll() を使用して要素を追加する
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<Str ing> myList = new ArrayList<>();
Collections.addAll(myList, "apple", "banana", "orange");
}
}
Collections.addAll()
メソッドは、既存の List に複数の要素を一括で追加します。
Collections.singletonList() を使用して単一の要素を持つ List を作成する
import java.util.Collections;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<Str ing> myList = Collections.singletonList("apple");
// 注意: この List は不変です
}
}
Collections.singletonList()
メソッドは、指定された要素のみを含む不変の List を作成します。
Java 9 以降の List.of() を使用して不変の List を作成する
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> myList = List.of("apple", "banana", "orange");
// 注意: この List は不変です
}
}
Arrays.asList()
とCollections.singletonList()
で作成された List は不変であるため、注意が必要です。ArrayList
やLinkedList
は可変の List であり、要素の追加や削除が可能です。- 使用する方法は、作成したい List の性質やパフォーマンス要件に応じて選択してください。
java list collections