본문 바로가기
👋국비 후기 모음👋 (이력도 확인 가능!)
개발/자바

자바 다차원배열

by 킴뎁 2021. 1. 21.
728x90
반응형

다차원 배열

2차원 이상의 배열을 의미.

배열 요소로 또다른 배열을 가진다.

 

다차원 배열 선언

public class Array2D_01 {
	public static void main(String[] args) {
		
		//2차원 배열
		
		int num; //int형 변수 -> 정수값 1개 저장
		
		int[] arr1D; // int형 배열 -> int형 변수 여러개(묶음)
		
		int[][] arr; //int형 2차원 배열 -> int형 배열 여러개(묶음)
		
		//---------------------------------
		
		arr = new int[2][3]; //2차원 배열 생성
		//(int[3])[2]
		//-> 2행 3열짜리 int형 표가 만들어진 것과 같다
		
		arr[1][2] = 555; ///1번째행, 2번째열 요소
		System.out.println(arr[1][2]);
		
		//---------------------------------
		
		//---- 배열의 선언 ---
		int[] arr2; //추천
		int arr3[];
		
		int[][] arr4; //비추천
		int[] arr5[];
		int arr6[][];
		
	}
}

Line 14를 보자. 2차원 배열을 생성했다. int[2][3] 을 풀어서 보자면 (int[3])[2]이다. 그러니까 길이가 3인 배열이 2개 있는 의미이다. 순서를 헷갈리지 말자. -> 배열이 2개가 있는데 각각의 배열에 길이가 3인 배열이 있다.

 

 

다차원 배열 초기화.

public class Array2D_02 {
	public static void main(String[] args) {
		
		//1차원 배열의 선언과 동시에 초기화
		int[] arr1D = {1, 2, 3, 4, 5};
		
		//2차원 배열의 선언과 동시에 초기화
		int[][] arr2D = {
				{1, 2, 3},
				{4, 5, 6},
				{7, 8, 9}
		};
		//3행 3열의 2차원 배열 생성
		//	-> 3x3 배열, 3 by 3 array
        
        //	-> 4x3 배열의 모든 값 출력하기
		for(int i=0; i<4; i++) {
			for(int j=0; j<3; j++) {
				System.out.print(arr2D[i][j] + " "); //요소 출력
			}
			System.out.println(); //행마다 줄바꿈
		}
		System.out.println("--------------------");
        
		//--------------------------------------
		
		arr2D = new int[4][3]; //4행 3열 배열.
		
		for(int i=0; i<4; i++ ) { //i행, 0~3
			for(int j=0; j<3; j++) { //j열, 0~2
				
				//2차원 배열에 값 대입하기
				arr2D[i][j] = (i+1)*10 + (j+1);
				
			}
		}
		
		//2차원 배열의 모든 값 출력
		for(int i=0; i<4; i++) {
			for(int j=0; j<3; j++) {
				System.out.print(arr2D[i][j] + " "); //요소 출력
			}
			System.out.println(); //행마다 줄바꿈
		}
	}
}

윗 부분에 나온것처 선언과 동시에 초기화를 할 수가 있다.

아랫부분에 나온 것처럼 대입해야할 값이 많을 때 for문을 이용하여 대입할 수가 있다.

 

행마다 열의 길이가 일정하지 않을 수도 있다. 아래 코드를 확인해보자.

public class Array2D_03 {
	public static void main(String[] args) {
		
		int[][] arr; //2차원 배열 변수 선언
		
		arr = new int[3][]; //배열 생성 -> int[]형 배열 -> int
		
		arr[0] = new int[3]; //배열 생성 -> int형 배열 -> int[3]
		arr[1] = new int[2]; //int[2]
		arr[2] = new int[8]; //int[8]
		
		//------------------------------------------------
		
		System.out.println( "행의 길이 : " + arr.length ); //행의 길이
		System.out.println("-----------------");
		System.out.println( "0행의 길이 : " + arr[0].length ); //0행의 열 길이
		System.out.println( "1행의 길이 : " + arr[1].length ); //1행의 열 길이
		System.out.println( "2행의 길이 : " + arr[2].length ); //2행의 열 길이
		
		System.out.println("-----------------");
		
		//행마다 열의 길이가 일정하지 않은 2차원 배열의 전체 요소 출력
		for(int i=0; i<arr.length; i++) { //i, 0~2
			for(int j=0; j<arr[i].length; j++) { //j열, 0~2, 0~1, 0~7
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}
}
================================
행의 길이 : 3
-----------------
0행의 길이 : 3
1행의 길이 : 2
2행의 길이 : 8
-----------------
0 0 0 
0 0 
0 0 0 0 0 0 0 0 
반응형
👋국비 후기 모음👋 (이력도 확인 가능!)

댓글