까잉이의 개발노트

JAVA 2차원 배열 본문

JAVA

JAVA 2차원 배열

까잉이 2021. 9. 7. 16:11

2차원배열

자료형이같은1차원배열의묶음으로배열안에다른배열존재
2차원배열은할당된공간마다인덱스번호두개부여(앞번호는행, 뒷번호는열([0][0]) )

배열선언

- 자료형[][] 배열명;

- 자료형 배열명[][];

- 자료형[] 배열명[];

 

배열할당

- 자료형[][] 배열명 = new 자료형[행크기][열크기];

 

예시

	// 배열선언
	int[][] arr;
    int arr2[][];
    int[] arr3[];
    
    // 배열할당
    int[][] arr = new int[1][1];

 

2차원 배열 구조

 

2차원 배열 초기화 하는 방법

1. 인덱스를 이용한 초기화

	int[][] arr = new arr[1][2];
    arr[0][0] = 1;
    arr[1][1] = 2;

 

2. for문을 이용한 초기화

	int[][] arr = new int[3][5];
    
    int value = 1;
	for(int i = 0; i < arr.length; i++) {
		for(int j = 0; j < arr[i].length; j++) {
			arr[i][j] = value++;
			System.out.printf("%2d ", arr[i][j]);
		}
		System.out.println();
	}

결과

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

 

3. 이차원 배열의 할당과 초기화 동시에

	int[][] arr = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
		
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + "\t");
			}
			System.out.println();
		}

결과

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

 

가변 배열

행은 정해졌으나 각 행에 대한 열의 갯수가 정해지지 않은 상태
자료형이 같은 1차원 배열 여러 개를 하나로 묶은 것이 2차원 배열이므로

묶여있는 1차원 배열의 길이가 꼭 같을 필요는 없음

 

	int[][] arr = new int[3][];
		//=> 가변 배열 할당 (행 크기는 3행, 각 열은 할당되지 않은 상태)
		arr[0] = new int[2];
		arr[1] = new int[1];
		arr[2] = new int[3];
		// => 각 행이 1차원 배열을 참조할 수 있도록 각각 할당
		int value = 1;
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0; j < arr[i].length; j++) {
				arr[i][j] = value++;
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}

 

가변 배열의 할당과 초기화 동시에

	int[][] arr= {{1, 2}, {3}, {4, 5, 6}};
		int value = 1;
		for(int i = 0; i < arr.length; i++) {
			for(int j =0; j < arr[i].length; j++) {
				arr[i][j] = value++;
				System.out.print(arr[i][j] + "\t");				
			}
			System.out.println();
		}

 

'JAVA' 카테고리의 다른 글

JAVA 사용자 ip 가져오기  (0) 2022.11.08
JAVA 배열(Array) 정리  (0) 2021.08.01
JAVA 반복문(for문, while문)과 분기문 정리  (0) 2021.08.01
JAVA 조건문(if문, switch문) 정리  (0) 2021.07.28
JAVA 연산자 실습문제  (0) 2021.07.28
Comments