Java ArrayList 的数组、ArrayList 的数组
今天我们将学习如何创建 ArrayList 的 Java 数组。我们还将学习如何创建数组元素的 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 不支持泛型数组。因此,如果我们尝试使用以下代码,它将产生编译时错误“无法创建 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 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 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 的数组和 Array 的 ArrayList 的全部内容。
您可以从我们的GitHub 存储库中查看更多核心 Java 示例。
参考:Java 数组