1.다차원 배열


03-01에서 설명한 배열의 다차원 선언에 대한 설명이다.


일차원 배열의 경우 int [] 변수이름과 같이 선언하는데


다차원의 경우는 원하는 차원 수 만큼 []를 늘주면 된다.


2, 3차원의 예


String[][] royal = new String[4][4];


String[][][] royal = new String[4][4][3];


2.배열의 길이, length


배열 선언시 지원되는 메서드 중 하나인 length는 배열 방의 길이를 반환해준다.


위의 예에서 royal.length를 하면 royal[의 1차원 길이가 반환되고


royal[x].length를 사용하면 2차원의 길이가 반환된다.


length는 배열이 쓰일때 for에 자주 활용되므로 꼭 기억해두자.




- 2차원 예

package chap03.exam03.MultiArr;

public class TwoD {

	public static void main(String[] args) {
		// 4층 4호를 가지고 있는 royal 아파트 만들기
		String[][] royal = new String[4][4];
		// royal.length = royal 아파트의 층 수
		//royal[i].length = i 층의 호 수
		
//		royal[0][0] = "0층 0호";
		for(int i = 0; i < royal.length; i++) {
			for(int j = 0; j < royal[i].length; j++) {
				royal[i][j] =  i + "층 " + j + "호";
				System.out.println(royal[i][j]);
			}
		}
		
		// 바로 옆에 arr 아파트, 2층 3호
//		int arr[][] = {
//				{00, 01, 02},
//				{10, 11, 12}
//		};
		
	}

}


- 3차원의 예

package chap03.exam03.MultiArr;

public class threeD {

	public static void main(String[] args) {
		// 4층 4호 방 3개
		String[][][] royal = new String[4][4][3];
		System.out.println("전체 층 수 : " + royal.length);
		System.out.println("0층의 호 수 : " + royal[0].length);
		System.out.println("0층 0호의 방 수 : " + royal[0][0].length);
		System.out.println();
		
		System.out.println(royal[0][0][0]); // Null
		royal[0][0][0] = "철수의 방";
		royal[2][3][2] = "영희의 방";
		//나머지 방을 공실
		
		// 1. 전체 방에 공실 표시를 어떻게??
		for(int i = 0; i < royal.length; i++) {
			for(int j = 0; j < royal[i].length; j++) {
				for(int k = 0; k < royal[i][j].length; k++) {
					
					
					// 2. 영희방과 철수방을 어떻게 빼는가?
					if(royal[i][j][k]== null ) {
						royal[i][j][k] = "공실";
					}

					System.out.println(i + "층 " + j + "호 " + k + "방 : " + royal[i][j][k]);
				}
			}
		}
	}

}

'개념 및 코딩 > 03.배열' 카테고리의 다른 글

[JAVA]03-01.배열, 향상된 for 문  (0) 2018.08.22

+ Recent posts