Today we will learn how to create a Java array of ArrayList. We will also learn how to create an ArrayList of array elements.
今天,我们将学习如何创建ArrayList的Java数组。 我们还将学习如何创建数组元素的ArrayList。
Java ArrayList的数组 (Java Array of ArrayList)
Creating array of list in java is not complex. Below is a simple program showing java Array of ArrayList example.
在Java中创建列表数组并不复杂。 下面是一个简单的程序,显示了ArrayList的 java Array示例。
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);
}
}
}
Notice that we can’t use generics while creating the array because java doesn’t support generic array. So if we try to use below code, it will produce compile time error as “Cannot create a generic array of List<String>”.
注意,在创建数组时我们不能使用泛型,因为Java不支持泛型数组。 因此,如果我们尝试使用下面的代码,它将产生编译时错误,如“无法创建List <String>的通用数组”。
List<String>[] arrayOfList = new List<String>[2];
Java Array数组列表 (Java ArrayList of Array)
We can also create an array whose elements are a list. Below is a simple example showing how to create a list of array elements in java.
我们还可以创建一个数组,其元素为列表。 下面是一个简单的示例,显示了如何在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 Array对象数组列表 (Java ArrayList of Object Array)
If you are not sure about the type of objects in the array or you want to create an ArrayList of arrays that can hold multiple types, then you can create an ArrayList of an object array.
如果不确定数组中对象的类型,或者要创建可以容纳多种类型的数组的ArrayList ,则可以创建对象数组的ArrayList。
Below is a simple example showing how to create ArrayList of object arrays in java.
下面是一个简单的示例,显示了如何在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 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;
}
}
}
When we execute the above program, it produces the following output.
当我们执行上述程序时,它将产生以下输出。
[a, b, c]
[1, 2, 3, 4]
[A.class::AA, A.class::BB]
That’s all for creating an Array of ArrayList and ArrayList of Array in Java.
这就是用Java创建ArrayList的Array和Array的ArrayList的全部。
Reference: Java Arrays
参考: Java数组
翻译自: https://www.journaldev.com/744/java-array-of-arraylist-of-array