配列とリストの相互変換

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

配列は、Java においてデータのコレクションを格納するために広く使用される線形データ構造です。要素が連続したメモリブロックに割り当てられているため、配列の任意の要素にはそのインデックスを使用してランダムアクセスできます。一方、List インターフェイスは、データの順序付きコレクションを維持する方法を提供し、ArrayList や LinkedList などのクラスによって実装されます。この実験では、Java のさまざまなメソッドを使用して配列をリストに変換したり、その逆を行ったりする方法を学びます。

asList() メソッドを使った配列からリストへの変換

Arrays クラスの asList() メソッドを使って配列をリストに変換することができます。このメソッドは配列をパラメータとして取り、その要素のリストを返します。asList() メソッドを使って配列をリストに変換するには、以下の手順を行います。

  • 文字列配列と整数配列を作成し、値で初期化する
  • Arrays.asList() メソッドを使って配列をリストに変換する
  • リストを表示する
import java.util.Arrays;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // 手順 1: asList() メソッドを使った配列からリストへの変換
        // 文字列配列を作成する
        String[] strArr = {"this", "is", "a", "string", "array"};
        // 整数配列を作成する
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // asList() メソッドを使って配列をリストに変換する
        List<String> strList = Arrays.asList(strArr);
        List<Integer> intList = Arrays.asList(intArr);
        // リストを表示する
        System.out.println("asList() メソッドを使った配列からリストへの変換:");
        System.out.println(strList);
        System.out.println(intList);
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

Collections.addAll() メソッドを使った配列からリストへの変換

Collections.addAll() メソッドを使って、配列のすべての要素をリストに追加することができます。まず空のリストを作成し、既存の配列と新しいリストをこのメソッドのパラメータとして渡す必要があります。Collections.addAll() メソッドを使って配列をリストに変換するには、以下の手順を行います。

  • 文字列配列と整数配列を作成し、値で初期化する
  • ArrayList クラスを使って、対応するデータ型の空のリストを作成する
  • Collections.addAll() メソッドを使って、配列の要素をリストに追加する
  • リストを表示する
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // 手順 2: Collections.addAll() メソッドを使った配列からリストへの変換
        // 文字列配列を作成する
        String[] strArr = {"this", "is", "a", "string", "array"};
        // 整数配列を作成する
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // 対応するデータ型の空のリストを作成する
        List<String> strList = new ArrayList<String>();
        List<Integer> intList = new ArrayList<Integer>();
        // Collections.addAll() メソッドを使って、配列の要素をリストに追加する
        Collections.addAll(strList, strArr);
        Collections.addAll(intList, intArr);
        // リストを表示する
        System.out.println("Collections.addAll() メソッドを使った配列からリストへの変換:");
        System.out.println(strList);
        System.out.println(intList);
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

Guava の Lists.newArrayList() メソッドを使った配列からリストへの変換

Guava ライブラリの Lists.newArrayList() メソッドも、配列を ArrayList に変換するために使用できます。Lists.newArrayList() メソッドを使って配列をリストに変換するには、以下の手順を行います。

  • 文字列配列と整数配列を作成し、値で初期化する
  • Lists.newArrayList() メソッドを使って配列を ArrayList に変換する
  • ArrayList を表示する
import com.google.common.collect.Lists;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // 手順 3: Guava の Lists.newArrayList() メソッドを使った配列からリストへの変換
        // 文字列配列を作成する
        String[] strArr = {"this", "is", "a", "string", "array"};
        // 整数配列を作成する
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Guava の Lists.newArrayList() メソッドを使って配列を ArrayList に変換する
        List<String> strList = Lists.newArrayList(strArr);
        List<Integer> intList = Lists.newArrayList(intArr);
        // ArrayList を表示する
        System.out.println("Guava の Lists.newArrayList() メソッドを使った配列からリストへの変換:");
        System.out.println(strList);
        System.out.println(intList);
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

独自のメソッドを書いて配列をリストに変換する

配列をリストに変換する独自のメソッドを書くこともできます。配列の要素をリストに追加するために、List インターフェイスの add() メソッドを使用します。独自のメソッドを書くには、以下の手順を行います。

  • 文字列配列をパラメータとして取り、文字列のリストを返すメソッドを書く
  • メソッド内で空の ArrayList を作成する
  • 配列をループし、add() メソッドを使用して各要素を ArrayList に追加する
  • ArrayList を返す
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    // 手順 4: 独自のメソッドを書いて配列をリストに変換する
    public static List<String> arrayToList(String[] strArr) {
        List<String> strList = new ArrayList<String>();
        for(int i = 0; i <= strArr.length - 1; i++)
            strList.add(strArr[i]);
        return strList;
    }

    public static void main(String[] args) {
        // 文字列配列を作成する
        String[] strArr = {"this", "is", "a", "string", "array"};
        // 独自のメソッドを使って配列をリストに変換する
        List<String> strList = arrayToList(strArr);
        // リストを表示する
        System.out.println("独自のメソッドを使った配列からリストへの変換:");
        System.out.println(strList);
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

toArray() メソッドを使ったリストから配列への変換

toArray() メソッドを使って、リストを配列に変換することができます。このメソッドは配列をパラメータとして取り、リストの要素を含む配列を返します。toArray() メソッドを使ってリストを配列に変換するには、以下の手順を行います。

  • ArrayList を作成し、そこに要素を追加する
  • toArray() メソッドを使って ArrayList を配列に変換する
  • 配列を表示する
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // 手順 5: toArray() メソッドを使ったリストから配列への変換
        // ArrayList を作成する
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // toArray() メソッドを使って ArrayList を配列に変換する
        String[] strArr = strList.toArray(new String[0]);

        // 配列を表示する
        System.out.println("toArray() メソッドを使ったリストから配列への変換:");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

Guava の Iterables.toArray() メソッドを使ったリストから配列への変換

Guava ライブラリの Iterables.toArray() メソッドも、リストを配列に変換するために使用できます。Iterables.toArray() メソッドを使ってリストを配列に変換するには、以下の手順を行います。

  • ArrayList を作成し、そこに要素を追加する
  • Iterables.toArray() メソッドを使って ArrayList を配列に変換する
  • 配列を表示する
import com.google.common.collect.Iterables;
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // 手順 6: Guava の Iterables.toArray() メソッドを使ったリストから配列への変換
        // ArrayList を作成する
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Guava の Iterables.toArray() メソッドを使って ArrayList を配列に変換する
        String[] strArr = Iterables.toArray(strList, String.class);

        // 配列を表示する
        System.out.println("Guava の Iterables.toArray() メソッドを使ったリストから配列への変換:");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

独自のメソッドを書いてリストを配列に変換する

リストを配列に変換する独自のメソッドを書くこともできます。リストをループして、get() メソッドを使って各要素を取得し、配列インデックスを使って配列に追加します。独自のメソッドを書くには、以下の手順を行います。

  • 文字列のリストをパラメータとして取り、文字列配列を返すメソッドを書く
  • メソッド内で、リストのサイズと同じサイズの空の文字列配列を作成する
  • リストをループし、配列インデックスを使って各要素を配列に追加する
  • 配列を返す
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static String[] listToArray(List<String> strList) {
        String[] strArr = new String[strList.size()];
        for(int i = 0; i <= strList.size() - 1; i++)
            strArr[i] = strList.get(i);
        return strArr;
    }

    public static void main(String[] args) {
        // 独自のメソッドを書いてリストを配列に変換する
        // ArrayList を作成する
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // 独自のメソッドを使って ArrayList を配列に変換する
        String[] strArr = listToArray(strList);

        // 配列を表示する
        System.out.println("独自のメソッドを使ったリストから配列への変換:");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

コードを実行するには、ターミナルを開き、プロジェクトフォルダに移動して、次のコマンドを入力します。javac ArrayToList.java && java ArrayToList

まとめ

この実験では、Java において配列をリストに変換し、そのリストを再度配列に変換する様々な方法を検討しました。配列をリストに変換する際に、Arrays クラスの asList() メソッド、Collections クラスの addAll() メソッド、および Guava ライブラリの Lists.newArrayList() メソッドをどのように使用するかを見ました。また、リストを配列に変換する際に、toArray() メソッドと Guava ライブラリの Iterables.toArray() メソッドをどのように使用するかも見ました。最後に、これらの変換を行う独自のメソッドを書きました。配列とリストの相互変換のさまざまな方法を理解することは、両方のデータ構造の可能性を活用し、Java におけるプログラミングスキルを向上させるのに役立ちます。