Programming/Java
[Java 자바] 11. 기본 API 클래스 ⑦ Arrays 클래스
erinh
2022. 9. 4. 22:08
반응형
11-8. Arrays 클래스
리턴 타입 | 메소드 이름 | 설명 |
int | binarySearch(배열, 찾는값) | 전체 배열 항목에서 찾는 값이 있는 인덱스 리턴 |
타겟 배열 | copyOf(원본배열, 복사할길이) | 원본 배열의 0번 인덱스에서 복사할 길이만큼 복사할 배열 리턴 복사할 길이는 원본 배열의 길이보다 커도 되며, 타겟 배열의 길이가 됨 |
타겟 배열 | copyOfRange(원본배열, 시작인덱스, 끝인덱스) | 원본 배열의 시작 인덱스에서 끝 인덱스 전까지 복사한 배열 리턴 |
boolean | deepEquals(배열, 배열) | 두 배열의 깊은 비교(중첩 배열의 항목까지 비교) |
boolean | equals(배열, 배열) | 두 배열의 얕은 비교(중첩 배열 항목은 비교하지 않음) |
void | fill(배열, 값) | 전체 배열 항목에 동일한 값을 저장 |
void | fill(배열, 시작인덱스, 끝인덱스) | 시작 인덱스부터 끝 인덱스 전까지의 항목에만 동일한 값 저장 |
void | sort(배열) | 배열의 전체 항목을 오름차순으로 정렬 |
String | toString(배열) | "[값1, 값2, ...]" 와 같은 문자열 리턴 |
11-8-1. 배열 복사
char[] arr1 = {'E', 'R', 'I', 'N'};
char[] arr2 = Arrays.copyOf(arr1, arr1.length);
char[] arr3 = Arrays.copyOfRange(arr2, 1, 2);
System.out.println(Arrays.toString(arr2)); // [E, R, I, N]
System.out.println(Arrays.toString(arr3)); // [R]
11-8-2. 배열 항목 비교
int[][] origin = {{1, 2}, {3, 4}};
// 얕은 복사 후 비교 (복사한 객체가 기존 객체와 동일한 참조값을 가짐)
int[][] cloned1 = Arrays.copyOf(origin, origin.length);
System.out.println(origin.equals(cloned1)); // false
System.out.println(Arrays.equals(origin, cloned1)); // true
System.out.println(Arrays.deepEquals(origin, cloned1)); // true
// 깊은 복사 후 비교 (복사한 객체는 새로운 객체로 기존과 다른 참조값을 가짐)
int[][] cloned2 = Arrays.copyOf(origin, origin.length);
cloned2[0] = Arrays.copyOf(origin[0], origin[0].length);
cloned2[1] = Arrays.copyOf(origin[1], origin[1].length);
System.out.println(origin.equals(cloned2)); // false
System.out.println(Arrays.equals(origin, cloned2)); // false
System.out.println(Arrays.deepEquals(origin, cloned2)); // true
11-8-3. 배열 항목 정렬
- 기본 정렬은 오름차순으로 정렬
- 사용자 정의 클래스 타입일 경우 클래스가 Comparable 인터페이스를 구현하고 있어야 정렬 가능
int[] scores = {100, 90, 95, 50};
Arrays.sort(scores);
System.out.println(Arrays.toString(scores)); // [50, 90, 95, 100]
String[] names = {"Ruby", "Erin", "Mike"};
Arrays.sort(names);
System.out.println(Arrays.toString(names)); // [Erin, Mike, Ruby]
반응형