Java ArrayList的Array,Array的ArrayList

时间:2020-02-23 14:36:21  来源:igfitidea点击:

今天,我们将学习如何创建ArrayList的Java数组。
我们还将学习如何创建数组元素的ArrayList。

Java ArrayList的数组

在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);
		}

	}

}

请注意,由于Java不支持通用数组,因此在创建数组时不能使用通用。
因此,如果我们尝试使用下面的代码,它将产生编译时错误,如"无法创建List <String>的通用数组"。

List<String>[] arrayOfList = new List<String>[2];

Java Array数组列表

我们还可以创建一个数组,其元素为列表。
下面是一个简单的示例,显示了如何在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对象数组列表

如果不确定数组中对象的类型,或者要创建可以容纳多种类型的数组的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 hyman
	 * 
	 */
	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]