JAVA

가변 배열(dynamic array) | 21/11/29

S.I.B 2022. 1. 7. 20:18

 

코드 작성
package ex_Array;

public class Ex1 {

	public static void main(String[] args) {

		/*
		 * 가변 배열(dynamic array)
		 * 
		 * - 다차원 배열에서 마지막 차수의 크기를 지정하지 않고 각각 다르게 지정 - 2차원 배열을 생성할 때 열의 길이를
		 * 명시하지 않음으로써, 행마다 다른 길이의 배열 요소를 저장
		 */

		// 2차원 배열 3행 크기의 가변 배열 생성
		int[][] arr = new int[3][];

		arr[0] = new int[2]; // 1행에 2열의 크기 생성
		// 2행에 4열 크기 / 3행에는 1열의 크기
		arr[1] = new int[4];
		arr[2] = new int[1];

		// 행의 인덱스 0 ~ 행 크기 -1 만큼 반복
		for (int i = 0; i < arr.length; i++) {
			System.out.println("arr 배열의 " + (i + 1) + "행의 크기 : " + arr[i].length);

		}

		// 가변 배열을 선언과 동시에 초기화 블록으로 초기화
		int[][] arr2 = { { 10, 20 }, // 1행의 데이터
				{ 10, 20, 30, 40 }, // 2행의 데이터
				{ 10 } // 3행의 데이터
		};

		for (int i=0; i<arr.length; i++) {

			for (int k=0; k<arr[i].length; k++) {

//				System.out.print("arr2[" + i + "][" + k + "] = " + arr2[i][k] + " ");
				System.out.printf("arr2[%d][%d]= %d ",i, k, arr2[i][k]);

			}
			System.out.printf("\n");
		}
	}

}

가변 배열의 설명과 예시

출력 결과

arr 배열의 1행의 크기 : 2
arr 배열의 2행의 크기 : 4
arr 배열의 3행의 크기 : 1
arr2[0][0]= 10 arr2[0][1]= 20 
arr2[1][0]= 10 arr2[1][1]= 20 arr2[1][2]= 30 arr2[1][3]= 40 
arr2[2][0]= 10 

 

나의 소감
   이런걸 어디에서 써먹을 수 있을까??
   음.... 약간 사람마다 가진 자산의 종류??
   A 라는 사람은 "집"만 가지고 있고
   B 라는 사람은 "집"과 "차" 가 있고
   C 라는 사람은 "집"과 "차"와 "빌딩"을 가지고 있을때
   3명의 사람의 자산을 불러올 때?
   (정확한 개념 아님 그냥 100% 내생각...)