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
반응형
'개발 > 자바' 카테고리의 다른 글
자바 추상클래스, 추상메소드 / 인터페이스 (0) | 2021.01.27 |
---|---|
자바 상속, Inheritance / 오버라이딩, Overriding / super / final / 다형성 / for each 구문 (0) | 2021.01.25 |
자바 배열 복사 (0) | 2021.01.20 |
자바 배열이란? // 배열 정렬, Bubble Sort (0) | 2021.01.19 |
자바 {맥북} 내가 자주 사용하는 이클립스 단축키 정리. (0) | 2021.01.17 |
댓글