JavaのArrayListの配列、配列のArrayList

今日は、JavaのArrayListの配列を作成する方法と、配列要素のArrayListを作成する方法を学びます。

JavaのArrayListの配列

Javaでのリストの配列の作成は複雑ではありません。以下は、簡単なプログラムでJavaの配列ArrayListの例を示しています。

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

public class JavaArrayOfArrayList {

	public static void main(String[] args) {
		List<String> l1 = new ArrayList<>();
		l1.add("1");
		l1.add("2");

		List<String> l2 = new ArrayList<>();
		l2.add("3");
		l2.add("4");
		l2.add("5");

		List<String>[] arrayOfList = new List[2];
		arrayOfList[0] = l1;
		arrayOfList[1] = l2;

		for (int i = 0; i < arrayOfList.length; i++) {
			List<String> l = arrayOfList[i];
			System.out.println(l);
		}

	}

}

ジェネリクスは配列の作成時に使用できないため、以下のコードを使用しようとすると、コンパイル時エラーが発生します。「List<String>のジェネリック配列を作成できません」というエラーです。

List<String>[] arrayOfList = new List<String>[2];

JavaのArrayListの配列

要素がリストである配列も作成できます。以下は、Javaで配列要素のリストを作成する簡単な例です。

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

public class JavaArrayListOfStringArray {

	public static void main(String[] args) {
		// 文字列の配列のリスト
		List list = new ArrayList();
		
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };
		list.add(arr1);
		list.add(arr2);
		// ArrayList内の文字列の配列のリストを出力します
		for (String[] strArr : list) {
			System.out.println(Arrays.toString(strArr));
		}
	}

}

Javaオブジェクト配列のArrayList

配列内のオブジェクトの型がわからない場合や、複数の型を保持できる配列のArrayListを作成したい場合は、オブジェクト配列のArrayListを作成できます。以下は、Javaでオブジェクト配列のArrayListを作成する方法を示す簡単な例です。

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

public class JavaArrayListOfObjectArray {

	public static void main(String[] args) {
		// 異なる型の配列を保持するオブジェクト配列のリスト
		List list = new ArrayList();
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };

		JavaArrayListOfObjectArray aa = new JavaArrayListOfObjectArray();
		JavaArrayListOfObjectArray.A[] arr3 = { aa.new A("AA"), aa.new A("BB") };

		list.add(arr1);
		list.add(arr2);
		list.add(arr3);

		// 異なる型のオブジェクト配列を保持するリスト、それらを印刷します
		for (Object[] objArr : list) {
			System.out.println(Arrays.toString(objArr));

			// 配列を繰り返し処理し、その型に基づいて操作を行います
			for (Object obj : objArr) {

				// instanceofキーワードを使用して、配列内のオブジェクトの型を検索する
				if (obj instanceof String) {
					// doSomethingForStringObject();
				} else if (obj instanceof JavaArrayListOfObjectArray.A) {
					// doSomethingForAObject();
				}
			}
		}
	}

	/**
	 * A sample class to use in arraylist of arrays
	 * 
	 * @author pankaj
	 * 
	 */
	public class A {
		private String name;

		public A(String n) {
			this.name = n;
		}

		public String getName() {
			return this.name;
		}

		@Override
		public String toString() {
			return "A.class::"+this.name;
		}
	}
}

上記のプログラムを実行すると、次の出力が生成されます。

[a, b, c]
[1, 2, 3, 4]
[A.class::AA, A.class::BB]

これで、JavaでArrayListの配列と配列のArrayListを作成する方法については以上です。

より多くのコアJavaの例は、当社のGitHubリポジトリからご覧いただけます。

参照:Java配列

Source:
https://www.digitalocean.com/community/tutorials/java-array-of-arraylist-of-array