1. 배열 복사: copyOf() / copyOfRange()
int[] a = {1, 2, 3, 4, 5, 6, 7};
int[] b = Arrays.copyOf(a, a.length)
// copyOf(원본 배열, 복사할 길이)
// b = {1, 2, 3, 4, 5, 6, 7}
int[] c = Arrays.copyOfRange(a, 1, 4);
// copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스) : 끝 인덱스는 포함하지 않음
// c = {2, 3, 4}
2. 배열 항목 비교: equals() / deepEquals()
int[][] a = { {1, 2}, {3, 4} };
// 얕은 복사
int[][] b = Arrays.copyOf(a, a.length);
System.out.println(a.equals(b)); // false
System.out.println(Arrays.equals(a, b) // true
System.out.println(Arrays.deepEquals(a, b) // true
// 깊은 복사
int[][] c = Arrays.copyOf(a, a.length);
c[0] = Arrays.copyOf(a[0], a[0].length);
c[1] = Arrays.copyOf(a[1], a[1].length);
System.out.println(a.equals(c)) // false
System.out.println(Arrays.equals(a, c) // false
System.out.println(Arrays.deepEquals(a, c) // true
3. 배열 항목 정렬: sort() (오름차순 정렬)
int[] a = {1, 4, 2, 5, 6, 3, 7};
Arrays.sort(a);
// a = {1, 2, 3, 4, 5, 6, 7};
사용자 정의 클래스일 경우 클래스가 Comparable 인터페이스를 구현하고 있어야 함
오름차순일 때 자신이 매개값 보다 낮으면 음수, 같을 경우 0, 높을 경우 양수를 리턴
public class IPhone implements Comparable<IPhone> {
String modelName;
IPhone (String modelName) {
this.modelName = modelName;
}
@Override
public int compareTo(iPhone i) {
return modelName.compareTo(i.modelName);
}
}
4. 배열 요소 검색: binarySearch()
반드시 sort() 등의 메소드를 이용하여 정렬을 해 놓은 상태여야 한다.
없는 항목을 찾으려고 하면 음수값을 리턴한다.
int[] a = {1, 2, 3, 4., ... , 100};
System.out.println(Arrays.binarySearch(a, 85);
// binarySearch(원본 배열, 찾을 값);
// 출력: 84
5. 배열 초기화: fill()
int[] a = new int[5];
Arrays.fill(a, 1);
// a = {1, 1, 1, 1, 1}
Arrays.fill(a, 1, 3, 2);
// fill(원본 배열, 시작 인덱스, 끝 인덱스, 값)
// a = {1, 2, 2, 1, 1};
'JAVA' 카테고리의 다른 글
#2. ArrayList (0) | 2021.08.31 |
---|---|
#1. 정규식 (0) | 2021.08.30 |