Java ArrayList深度解析:高效动态数组使用指南
Java中的ArrayList数组:深入理解与实践
本文将深入探讨如何在Java中创建和使用ArrayList数组,以及如何构建包含数组元素的ArrayList。我们将通过详细的代码示例,帮助您理解这些核心概念。
Java中的ArrayList数组
在Java中创建数组列表(ArrayList)并不复杂。以下是一个简单的程序示例,展示了如何将多个ArrayList组合成一个数组:
import java.util.ArrayList;
import java.util.List;
public class JavaArrayOfArrayList {
public static void main(String[] args) {
// 创建两个String类型的ArrayList
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类型的数组来存储ArrayList
// 注意:由于Java不支持泛型数组,这里不能写成 List<String>[]
List<String>[] arrayOfList = new List[2];
arrayOfList[0] = l1;
arrayOfList[1] = l2;
// 遍历并打印数组中的每个ArrayList
for (int i = 0; i < arrayOfList.length; i++) {
List<String> l = arrayOfList[i];
System.out.println(l);
}
}
}
请注意,由于Java不支持泛型数组,所以在创建数组时我们无法直接使用泛型。因此,如果我们尝试使用以下代码,会产生编译时错误,错误信息为“无法创建一个List类型的泛型数组”:
List<String>[] arrayOfList = new List<String>[2];
Java中包含数组元素的ArrayList
我们还可以创建一个元素为数组的列表(ArrayList)。下面是一个简单的示例,展示了如何在Java中创建一个包含字符串数组的ArrayList:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class JavaArrayListOfStringArray {
public static void main(String[] args) {
// 创建一个包含字符串数组的ArrayList
List<String[]> list = new ArrayList<String[]>();
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) {
// 创建一个包含对象数组的ArrayList,用于存储不同类型的数组
List<Object[]> list = new ArrayList<Object[]>();
String[] arr1 = { "a", "b", "c" };
String[] arr2 = { "1", "2", "3", "4" };
JavaArrayListOfObjectArray aa = new JavaArrayListOfObjectArray();
// 创建自定义类型A的数组
JavaArrayListOfObjectArray.A[] arr3 = { aa.new A("AA"), aa.new A("BB") };
list.add(arr1);
list.add(arr2);
list.add(arr3);
// 遍历并打印ArrayList中不同类型的对象数组
for (Object[] objArr : list) {
System.out.println(Arrays.toString(objArr));
// 遍历数组中的每个对象,并根据其类型执行相应操作
for (Object obj : objArr) {
// 使用instanceof关键字判断对象的类型
if (obj instanceof String) {
// doSomethingForStringObject(); // 对String类型对象的操作
} else if (obj instanceof JavaArrayListOfObjectArray.A) {
// doSomethingForAObject(); // 对自定义A类型对象的操作
}
}
}
}
/**
* 一个用于ArrayList中数组的示例类
*/
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以及包含对象数组的ArrayList的全部内容。
您可以在我们的 GitHub 存储库 中查看更多的核心 Java 示例。
参考资料:Java 数组