Java/모두의 자바

Chapter 04-21 2차원 배열

계란💕 2022. 2. 4. 20:36

04-21.1 2차원 배열이란?


  Def) 2차원 배열: 배열의 배열

  - 배열 표시를 두 번 적어서 나타낸다. 

  - 2차원 배열을 설정할 때도 똑같이 new라고 적고 배열크기를 지정한다.

  - 배열이 두 개이니 배열 크기를 각각 지정한다.

 

 

04-21.2 배열 크기 지정

   Ex)

<hide/>

public class ArrayExam2 {
	public static void main(String[] args) {
		int [][] array4 = new int[3][4];
		array4[0][1] = 10;	
	}	
}

  Note)

  - array4: 배열명

  - int [ ][ ] array4 = new int[3][4]: (참조 변수: 0, 1, 2) , (인덱스: 0, 1, 2, 3)

  - 2차원 배열은 반드시 대괄호 두 개로 인덱스를 두 개 지정해야 한다.

  - array4[0][1] = 10 : 참조 변수 '0'의 1차원 배열에서 1번 인덱스에 10을 넣는다.

 

 

04-21.3 1차원 배열이 만들어지지 않는 경우

  Ex)

<hide/>

public class ArrayExam2 {
	public static void main(String[] args) {
		int [][] array5 = new int[3][];
		array5[0][0] = 10;
	}	
}

  Note)

    - int [][] array5 = new int[3][];

      ->이렇게 선언하면 참조 변수만 만들어지고 실제로 값을 담을 수 있는 1차원 배열은 만들어지지 않는다.

    - array5[0][0] =10 을 넣으면 오류가 발생한다.

      -> 배열의 참조 변수 '0'이 가리키는 1차원 배열이 없기 때문이다. 

      -> 따라서, 반드시 참조 변수가 가리킬 배열을 만들어줘야 한다. 

 

 

04-21.4 참조변수에 1차원 배열

  Ex)

<hide/>

public class ArrayExam2 {
	public static void main(String[] args) {
		int [][] array5 = new int[3][];
		array5[0] = new int[1];
		array5[0] = new int[2];
		array5[0] = new int[3];		
		array5[0][0] = 10;
	}	
}

  Note)

  - 참조 변수'0'에는 한 개 짜리 int형 배열

  - 참조 변수'1'에는 두 개 짜리 int형 배열

  - 참조 변수'2'에는 세 개 짜리 int형 배열을 만들었다.

  - 각각 길이가 다른 배열은 만들 수 있다.

 

 

04-21.5 

  - 2차원 배열도 1차원 배열과 마찬가지로 선언과 동시에 중괄호{}를 이용해서 초기화가능

  - 선언과 동시에 값을 저장한다.

<hide/>

public class ArrayExam2 {
	public static void main(String[] args) {
		int [][] array6 = { {1}, {1, 2}, {1, 2, 3} };
		System.out.println(array6[0][0]);
		
	}	
}

  Note) 출력 결과: 1

  - 다차원 배열도 마찬가지로 배열크기를 하나씩 증가시켜서 만들 수 있다.

 

 

04-21.6 2차원 배열 실습) 아래 코드를 똑같이 입력하여 실행결과 확인하라.

<hide/>

public class ArrayExam2 {
	public static void main(String[] args) {
		int [][] array = { {1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4} };
		
		for(int i = 0; i < array.length; ++i) {
			System.out.print( (i + 1)+"번째 줄을 출력합니다>"  );
			for(int j = 0; j < array[i].length;++j ) {
				System.out.print( array[i][j]+" ");
			}
			System.out.println( );

		}
	}	
}

  Note) 차원에 따라 중첩되는 괄호가 늘어난다. 

 

 

'Java > 모두의 자바' 카테고리의 다른 글

Chapter 05-23 클래스(Class) 선언  (0) 2022.02.05
Chapter 04-22 for each 문  (0) 2022.02.04
Chapter 04-20 배열 사용하기  (0) 2022.02.04
Chapter 04-19 배열(Array) 만들기  (0) 2022.02.04
Chapter 03-18 for 문  (0) 2022.02.04