HOWTO · Java

Java で配列から ArrayList を作成する方法

このチュートリアルでは、Java で Array から ArrayList を作成する方法を説明します。

このページの内容

このチュートリアルでは、Java で配列から ArrayList を作成する様々な方法を紹介します。Java で配列を ArrayList に変換する方法には、Arrays.asList()Collections.addAll()add() の 3つのメソッドがあります。

デモを進める前に、配列と ArrayList とは何か、また、それぞれの違いを理解しておきましょう。

Java における配列とは何か

配列は、似たような型のデータを一定数集めたものです。例えば、50 冊の本のデータを格納したい場合、50 冊の本を格納できる文字列型の配列を作成することができます。作成後、配列の長さは固定されます。配列は Java の基本的な組み込み機能です。

String[] array = new String[50];

Java の ArrayList とは何か

ArrayList は、java.util パッケージの中にある要素の動的なコレクションを格納したリサイズ可能な配列です。

Java の配列と ArrayList の違い

配列と ArrayList の主な違いは、配列の長さを変更したり拡張したりすることができないことです。配列に要素を追加したり削除したりするには、新しいリストを作成しなければならません。一方、ArrayList はリサイズ可能であるため、いつでも要素を追加したり削除したりすることができます。

Array.asList() を用いた配列から ArrayList への変換

Arrays.asList() を用いて配列をこのメソッドに渡し、list オブジェクトを取得し、それを ArrayList クラスのコンストラクタにパラメータとして渡します。Arrays.asList() の構文は以下の通りです。

ArrayList<T> arraylist = new ArrayList<T>(Arrays.asList(arrayname));

以下の例を見てみましょう。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Method1 {
  public static void main(String[] args) {
    String[] subjects = {"maths", "english", "history", "physics"};
    ArrayList<String> sublist = new ArrayList<String>(Arrays.asList(subjects));
    sublist.add("geography");
    sublist.add("chemistry");

    for (String str : sublist) {
      System.out.println(str);
    }
  }
}

出力:

maths
english
history
physics
geography
chemistry

Collectionions.addAll() を用いた配列から ArrayList への変換

このメソッドは Arrays.asList() とほぼ同じように配列の全要素をリストアップします。しかし、Collections.addAll()Arrays.asList() メソッドに比べて性能的にははるかに高速です。Collections.addAll() の構文は以下の通りです。

Collections.addAll(arraylist, new Element(1), new Element(2), new Element(3), new Element(4));

以下の例を理解しましょう。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Method2 {
  public static void main(String[] args) {
    String[] names = {"john", "emma", "rick", "tim"};
    ArrayList<String> namelist = new ArrayList<String>();
    Collections.addAll(namelist, names);
    namelist.add("jenny");
    namelist.add("rob");

    for (String str : namelist) {
      System.out.println(str);
    }
  }
}

出力:

john
emma
rick
tim
jenny
rob

add() を用いた配列から ArrayList への変換

このメソッドを使えば、新しいリストを作成してリストの要素を追加することができます。add() メソッドの構文は以下の通りです。

arraylist.add(element);

以下の例を見てみましょう。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Method3 {
  public static void main(String[] args) {
    ArrayList<String> planetlist = new ArrayList<String>();
    String[] planets = {"earth", "mars", "venus", "jupiter"};
    for (int i = 0; i < planets.length; i++) {
      planetlist.add(planets[i]);
    }
    for (String str : planetlist) {
      System.out.println(str);
    }
  }
}

出力:

earth
mars
venus
jupiter

上記のメソッドに続いて、配列を ArrayList に簡単に変換することができます。