Java で文字列のリストを初期化する

Rupam Yadav 2023年10月12日
  1. Java で文字列のリストを初期化するには ArrayListLinkedListVector を使用する
  2. Java で文字列の List をインスタンス化するには Arrays.asList を使用する
  3. Java 8 の Stream を使って Java で文字列の List をインスタンス化する
  4. Java で文字列の List のインスタンスを作成するには List.of を使用する
Java で文字列のリストを初期化する

このチュートリアルでは、Java で文字列のリストを初期化する様々な方法を見ていきます。リストはインターフェースなので、直接インスタンス化することはできません。

Java で文字列のリストを初期化するには ArrayListLinkedListVector を使用する

List は Java のコレクションの子インターフェースです。これはオブジェクトの順序付きコレクションであり、重複した値を格納することができます。List のインスタンスは、List インターフェースを実装したクラスを使って作成することができます。

これらのクラスには、ArrayListVectorLinkedListStack などがあります。リストのインスタンス myListnew ArraList<String>() を用いて作成します。したがって、以下のいずれかの方法で List のインスタンスを宣言および作成し、その List に対して様々な操作を行うことができます。

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

public class ListExample {
  public static void main(String[] args) {
    List<String> myList = new ArrayList<String>();
    List<Fruits> lList = new LinkedList<Fruits>();
    List<Integer> vList = new Vector<Integer>();

    myList.add("Happy");
    myList.add("Coding");

    lList.add(new Fruits("Grapes", "Green"));
    lList.add(new Fruits("Apple", "Red"));

    vList.add(1);
    vList.add(4);
    vList.add(9);
    vList.add(7);

    vList.remove(2);
    for (String s : myList) {
      System.out.println(s);
    }

    for (Fruits f : lList) {
      System.out.println(f.name + " is " + f.color + " in color.");
    }

    for (int i : vList) {
      System.out.println(i);
    }
  }
}
class Fruits {
  String name;
  String color;
  Fruits(String name, String color) {
    this.name = name;
    this.color = color;
  }
}

出力:

Happy
Coding
Grapes is Green in color.
Apple is Red in color.
1
4
7

Java で文字列の List をインスタンス化するには Arrays.asList を使用する

Arrays.asList メソッドは配列に裏付けられた固定サイズのリストを返します。これは配列をリストとして利用できるようにするラッパーにすぎません。リストは不変なので、このリストを変更することはできません。

ここでは、長さを変更できない myList という名前の List のインスタンスを取得しています。

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

public class ListExmp {
  public static void main(String[] args) {
    List<String> myList = Arrays.asList("John", "Ben", "Gregor", "Peter");
    String name = myList.get(3);
    System.out.println(name);
  }
}

出力:

Peter

Java 8 の Stream を使って Java で文字列の List をインスタンス化する

Java 8 の Stream には、データのかさばるプロセスを簡単かつ便利にするデータソースのラッパーが含まれています。

メソッドはデータのストリームを構築し、それらをリストに収集します。この操作のためのロジックは Collector インターフェースが提供します。Collector.toList() はストリームのすべての要素を List のインスタンスに収集します。

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

public class ListExmp {
  public static void main(String[] args) {
    List<String> list = Stream.of("john", "doe").collect(Collectors.toList());
    if (list.contains("doe")) {
      System.out.println("doe is there");
    } else {
      System.out.println("doe is not there");
    }
  }
}

出力:

doe is there

Java で文字列の List のインスタンスを作成するには List.of を使用する

以下のコードでは、List.of() メソッドは任意の数の引数を取り、不変リストを返します。List の変更不可能なインスタンスとして immutableList を用意しています。

可変リストを作成するためには、ArrayList のインスタンスを immutable リストをパラメータとして作成しなければならません。以下のコードに示すように、ListmutableList インスタンスに変更を加えることができます。

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

public class ListExmp {
  public static void main(String[] args) {
    List<String> immutableList = List.of("One", "Two", "Three", "Four", "Five");
    List<String> mutableList = new ArrayList<>(List.of("Six", "Seven", "Eight"));
    for (String l : immutableList) {
      System.out.println(l);
    }
    System.out.println("XXXXXX");
    mutableList.add("Nine");
    for (String l : mutableList) {
      System.out.println(l);
    }
  }
}

出力:

One
Two
Three
Four
Five
XXXXXX
Six
Seven
Eight
Nine
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java List