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,]
'Java' 카테고리의 다른 글
자바의 정석 ( 클래스의 정의 / 인스턴스 변수 / 클래스 변수 / 지역 변수 ) (0) | 2023.03.14 |
---|---|
자바의 정석 ( 객체의 생성 / 객체의 사용 / 객체 배열 ) (1) | 2023.03.12 |
자바의 정석 ( String 배열 / String 클래스의 주요 메서드 ) (0) | 2023.03.09 |
자바의 정석 ( 배열 / 배열의 선언 / 배열 인덱스 / 배열의 길이 / 배열 초기화 / 배열의 출력 ) (0) | 2023.03.07 |
자바의 정석 ( for문 / while문 / do-while문 / break문 / continue문 / 이름 붙은 반복문 ) (0) | 2023.03.06 |