Java ArrayList 배열, 배열의 ArrayList

오늘은 Java ArrayList의 배열을 만드는 방법을 배울 것입니다. 또한 배열 요소의 ArrayList을 만드는 방법도 배우겠습니다.

Java Array of 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 of Array

또한 요소가 목록인 배열을 만들 수도 있습니다. 아래는 Java에서 배열 요소의 목록을 만드는 간단한 예시입니다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JavaArrayListOfStringArray {

	public static void main(String[] args) {
		// String 배열의 목록
		List list = new ArrayList();
		
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };
		list.add(arr1);
		list.add(arr2);
		// ArrayList에서 String 배열의 목록 출력
		for (String[] strArr : list) {
			System.out.println(Arrays.toString(strArr));
		}
	}

}

자바 객체 배열의 ArrayList

배열 내 객체 유형이 확실하지 않거나 여러 유형을 보유할 수 있는 배열의 ArrayList을 생성하려는 경우, 객체 배열의 ArrayList를 생성할 수 있습니다. 아래는 자바에서 객체 배열의 ArrayList를 생성하는 간단한 예시입니다.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JavaArrayListOfObjectArray {

	public static void main(String[] args) {
		// 다양한 유형의 배열을 보유하는 Object 배열 목록
		List list = new ArrayList();
		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);

		// 목록은 다양한 유형의 Object 배열을 보유하며, 이를 출력합니다
		for (Object[] objArr : list) {
			System.out.println(Arrays.toString(objArr));

			// 배열을 반복하고 유형에 따라 작업 수행
			for (Object obj : objArr) {

				// 배열에서 객체 유형을 찾기 위해 instanceof 키워드를 사용
				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]

자바에서 ArrayList와 Array의 배열을 생성하는 방법에 대해 설명했습니다.

더 많은 핵심 자바 예제는 저희의 GitHub Repository에서 확인할 수 있습니다.

참조: 자바 배열

Source:
https://www.digitalocean.com/community/tutorials/java-array-of-arraylist-of-array