Java で ArrayList を初期化する

Hassan Saeed 2023年10月12日
  1. Java で ArrayList を初期化するには Arrays.asList を使用する
  2. Java で new ArrayList() を使用して ArrayList を初期化する
  3. Java で List.of() を使用して ArrayList を初期化する
  4. Java で Stream を使用して ArrayList を初期化する
Java で ArrayList を初期化する

このチュートリアルでは、Java で 1 行で値を持つ ArrayList を初期化するメソッドについて説明します。テストやミニマムなコーディングに便利です。

Java で ArrayList を初期化するには Arrays.asList を使用する

Java では ArrayList の代わりにリストを初期化して初期値を一行にまとめた方が比較的簡単です。しかし、必要に応じて ArrayList に変換することもできます。以下の例はその両方の方法を示しています。

import java.util.*;

public class Main {
  public static void main(String[] args) {
    // Initialize a list
    List<String> cities = Arrays.asList("Amsterdam", "Paris", "London");

    // Initialize an ArrayList
    ArrayList<String> cities_AL = new ArrayList<>(Arrays.asList("Amsterdam", "Paris", "London"));

    System.out.println(cities);
    System.out.println(cities_AL);
  }
}

出力:

[Amsterdam, Paris, London]
[Amsterdam, Paris, London]

citiescities_AL の唯一の違いは、一方が List であり、もう一方が ArrayList であるということです。

Java で new ArrayList() を使用して ArrayList を初期化する

ArrayList を初期化するもう一つの方法は、new ArrayList() 関数を使用することです。一行のコードですべての値を事前に割り当てることができます。

import java.util.*;

public class Main {
  public static void main(String[] args) {
    // Pre assign the values
    ArrayList<String> cities = new ArrayList<String>() {
      {
        add("Amsterdam");
        add("Paris");
        add("London");
      }
    };

    System.out.println(cities);
  }
}

出力:

[Amsterdam, Paris, London]

Java で List.of() を使用して ArrayList を初期化する

Java9 以降では、Arrays.asList() の代わりに List.of() メソッドを用いて ArrayList を初期化することができます。以下の例はこれを示しています。

import java.util.*;

public class Main {
  public static void main(String[] args) {
    // Initialize a List
    List<String> strings = List.of("foo", "bar", "baz");
    System.out.println(strings);

    // Initialize an ArrayList
    ArrayList<String> strings_a = new ArrayList<>(List.of("foo", "bar", "baz"));
    System.out.println(strings_a);
  }
}

出力:

[foo, bar, baz]
[foo, bar, baz]

Java で Stream を使用して ArrayList を初期化する

Java では、Stream を用いて ArrayList を初期化することもできます。以下の例はこれを示しています。

import java.util.*;
import java.util.stream.*;
public class Main {
  public static void main(String[] args) {
    ArrayList<String> places = new ArrayList<>(
        Stream.of("Buenos Aires", "Córdoba", "La Plata").collect(Collectors.toList()));

    System.out.println(places);
  }
}

出力:

[Buenos Aires, Córdoba, La Plata]

Java で ArrayList を初期化する方法については、この記事で事前に値を指定して一行で初期化する方法をいくつか説明しました。

関連記事 - Java ArrayList