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 数组

bannerAds