Back-end/Java, Kotlin

Java.. ArrayList안에 ArrayList만들기 : 네이버 블로그

philo0407 2020. 10. 1. 18:09

 

 

 

아래와 같은 구조를 활용하면

For문에 넣어서 활용할 수 있다.

내가 근무하는 곳의 경우 인터넷이 안 되므로 컬렉션프레임 라이브러리를 다운받을 수 없다.

때문에 ArrayList와 같은 효자 자료형을 사용할 수 없지만,

아래와 같이 동적할당 / 해제를 이용하면, array나 dictionary등의 자료형을 이용하여

동적할당 / 해제 할 수 있다.

//Queue<Integer> q= new LinkedList<Integer>();
		//Vector<Integer>[] vct = new Vector<Integer>()[8];
		ArrayList<Integer>[] al = new ArrayList[7];
		
		int MaxNum = 7;
		
		ArrayList<Integer> inner = new ArrayList<Integer>();
		ArrayList<ArrayList> outer = new ArrayList<ArrayList>();
		
		inner.add(1);
		inner.add(2);
		inner.add(3);
		
		outer.add(inner);
		
		System.out.println(outer);
		
		inner = null;
		
		System.out.println("다시 할당!");
		
		inner = new ArrayList<Integer>(Arrays.asList(4,5,6));
		outer.add(inner);
		
		System.out.println(outer);

 

[[1, 2, 3]]
다시 할당!
[[1, 2, 3], [4, 5, 6]]

 

 

 

 

 

 

자바에서는 아래와 같은 경우도 가능한 것 같다..

 

ArrayList<Integer>[][] m = new ArrayList[10][10];
        
m[0][0] = new ArrayList();
		
m[0][0].add(101);
		
System.out.println(m[0][0]);

 

 

2차원으로 활용

 

ArrayList<Integer>[] m = new ArrayList[10];
        
		for (int i = 0; i < 10; i++) {
			m[i] = new ArrayList();
			for (int j = 0; j < 3; j++) {
				m[i].add((i + 1) + (j + 1) * 100);
			}
		}
		
		for (int i = 0; i < 10; i++) {
				System.out.print(" \n"+m[i]);
		}

 

[101, 201, 301] 
[102, 202, 302] 
[103, 203, 303] 
[104, 204, 304] 
[105, 205, 305] 
[106, 206, 306] 
[107, 207, 307] 
[108, 208, 308] 
[109, 209, 309] 
[110, 210, 310]