2차원 배열 선언

 - int[][] score = new int[4][3];    // 4행 3열의 2차원 배열 생성

 

2차원 배열 인덱스 

- int[][] score = new int[4][3]; 

- 행 인덱스는 0~ 행의 길이 -1  (0~3 까지)

- 열 인덱스는 0~ 열의 길이 -1  (0~2 까지)

score[0][0]  score[0][1] score[0][2]
score[1][0] score[1][1] score[1][2]
score[2][0] score[2][1] score[2][2]
score[3][0] score[3][1] score[3][2]

 

2차원 배열 초기화 

int[][] arr = { {1,2,3,}, {4,5,6} } ;

보통은 알아보기 쉽게 아래와 같이 작성

int[][] score = {

                      {100, 100, 100},

                      { 20, 20, 20},

                      { 30, 30, 30},

                      { 40, 40, 40}

                  }; 

int[][] arr = new int[5][3];

행은 arr.length;      열은 arr[i].length; 

 

Arrays클래스로 배열 다루기 

배열 출력  -  toString()   /   deepToString() 

 

int[] arr = {0, 1, 2, 3, 4 }; 

int[][] arr2D = { {11, 12}, {21, 22} }; 

System.out.println(Arrays.toString(arr)); //    [0, 1, 2, 3, 4] 출력

System.out.println(Arrays.deepToString(arr2D)); //   [[11,12],[21,22]] 

toString () : 배열을 문자열로 바꿔줌 

deepToString() : 2차원 또는 다차원 배열  사용 

 

배열 비교  -  equals()   /   deepEquals() 

 

String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};

String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};

 

System.out.println(Arrays.equals(str2D,str2D2);  //false 

System.out.println(Arrays.deepEquals(str2D, str2D2); // true   2차원 배열이기 때문에 deepEquals를 사용해야됨 

 

배열 복사  -  copyOf()   /   copyOfRange()

 

int[] arr = { 0, 1, 2, 3, 4, }; 

int[] arr2 = Arrays.copyOf(arr, arr.length);    //arr2 =  [0,1,2,3,4]

int[] arr3 = Arrays.copyOf(arr, 3);               //arr3 = [0,1,2]

int[] arr4 = Arrays.copyOf(arr, 7);               //arr4 = [0,1,2,3,4,0,0]

int[] arr5 = Arrays.copyOfRange(arr, 2, 4);    //arr5= [2, 3]

int[] arr6= Arrays.copyOfRange(arr,0,7);       //arr6= [0,1,2,3,4,0,0]

 

배열 정렬  -  sort() 

 

int[] arr = {3,2,0,1,4};

Arrays.sort(arr) ;   //배열 arr 정렬 

System.out.println(Arrays.sort(arr));       //[0,1,2,3,4,]