Java でのリストの 1 行初期化

JavaBeginner
オンラインで実践に進む

はじめに

Java では、さまざまな方法を使用して、1 行のコードで List を初期化できます。この実験(Lab)では、Java で List を簡潔に初期化するさまざまな方法を学びます。

Arrays.asList() メソッドの使用

asList() メソッドを使用することで、配列から List を作成できます。このメソッドは、要素を直接パラメータとして受け取り、固定サイズのリストを返します。要素を追加しようとすると、UnsupportedOperationException がスローされます。

import java.util.Arrays;
import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Arrays.asList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

コードを実行するには、コマンドプロンプトを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac ListInitializationDemo.java
java ListInitializationDemo

Java 8 Streams の使用

Java Streams を使用して、collect() メソッドを使用してストリーム要素の List を作成できます。

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Stream.of("red", "blue", "green")
                                        .collect(Collectors.toList());
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

コードを実行するには、コマンドプロンプトを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac ListInitializationDemo.java
java ListInitializationDemo

List.of() メソッドの使用

Java 9 では、可変および不変の List の両方に対して、オーバーロードされた List.of() メソッドが提供されています。

import java.util.List;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = List.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red, blue, green]
    }
}

コードを実行するには、コマンドプロンプトを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac ListInitializationDemo.java
java ListInitializationDemo

Double Brace 構文の使用

Double Brace Initialization (二重括弧初期化) は、Anonymous Inner Class (無名内部クラス) を使用して List を初期化するために使用できます。

import java.util.List;
import java.util.ArrayList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = new ArrayList<String>() {
            {
                add("red");
                add("blue");
                add("green");
            }
        };
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

コードを実行するには、コマンドプロンプトを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac ListInitializationDemo.java
java ListInitializationDemo

Apache Commons Collections の使用

Apache Commons Collections は、指定されたリストの変更不可ビューを返す unmodifiableList() メソッドを提供します。

import java.util.List;
import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ListUtils.unmodifiableList(
                Arrays.asList("red", "blue", "green")
        );
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

コードを実行するには、ターミナルを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo

Guava ライブラリの使用

Guava ライブラリは、要素で初期化された可変 ArrayList を返す newArrayList() メソッドを提供します。

import java.util.List;
import com.google.common.collect.Lists;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = Lists.newArrayList("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

コードを実行するには、ターミナルを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

Guava の ImmutableList の使用

Guava はまた、変更不可の List を返す ImmutableList クラスを提供します。

import java.util.List;
import com.google.common.collect.ImmutableList;

public class ListInitializationDemo {
    public static void main(String[] args) {
        List<String> colorsList = ImmutableList.of("red", "blue", "green");
        System.out.print("Colors List : " + colorsList); //Output : [red,blue,green]
    }
}

コードを実行するには、ターミナルを開き、プロジェクトディレクトリに移動して、次のコマンドを実行します。

javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo

まとめ

Java では、1 行のコードで List を初期化する方法が多数あります。Java 8 Stream を使用して List を作成する方法、Arrays.asList() メソッドの使用、および Java 9 以降のバージョンの List.of() メソッドを見てきました。また、Double Brace Initialization (二重括弧初期化) と、Apache Commons Collections や Guava などの外部 Java ライブラリの使用例も見てきました。