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);
}
}
}
Javaでは、ジェネリック配列を作成する際には使用できないことに注意してください。これは、Javaがジェネリック配列をサポートしていないためです。したがって、以下のコードを使用しようとすると、「List のジェネリック配列を作成できません」というコンパイル時エラーが発生します。
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 of String arrays
List<String[]> list = new ArrayList<String[]>();
String[] arr1 = { "a", "b", "c" };
String[] arr2 = { "1", "2", "3", "4" };
list.add(arr1);
list.add(arr2);
// printing list of String arrays in the 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 of Object arrays to hold different types of array
List<Object[]> list = new ArrayList<Object[]>();
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);
// list holds different types of Object arrays, let's print them
for (Object[] objArr : list) {
System.out.println(Arrays.toString(objArr));
// iterating over the array and doing operation based on it's type
for (Object obj : objArr) {
// using instanceof keyword to find the Object type in the array
if (obj instanceof String) {
// doSomethingForStringObject();
} else if (obj instanceof JavaArrayListOfObjectArray.A) {
// doSomethingForAObject();
}
}
}
}
/**
* A sample class to use in arraylist of arrays
*
* @author scdev
*
*/
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を作成するには以上です。
弊社のGitHubリポジトリから、より多くのコアなJavaの例をチェックアウトすることができます。
参照:Javaの配列