1. Arrays.copyOf
- Arrays.copyOf(배열이름, 길이) : 해당 배열에서 길이
(인덱스X)
만큼 가지고 옴
private static int[] arr = {1, 2, 3, 4, 5};
int[] arr1 = Arrays.copyOf(arr, 2);
int[] arr2 = Arrays.copyOf(arr, 7); // 비어있는 값은 0이 들어감
public void grow() {
Customer[] copy = Arrays.copyOf(customerList, count);
size *= 2;
customerList = Arrays.copyOf(copy, size);
// size만큼 새로운 배열을 만듦
}
2. Arrays.copyOfRange
- Arrays.copyOfRange(배열이름, from, to)
특정 범위의 배열 복사
int[] arr = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr, 2, 4);
=> 3, 4
3. System.arraycopy
- System.arraycopy( 배열1, 배열1의 복사시작 인덱스, 배열2, 배열2의 복사시작 인덱스, 복사길이)
배열2의 시작인덱스에 배열1의 시작인덱스부터 길이만큼 복붙
A={a, b, c, d, e};
B={가, 나, 다, 라};
System.arraycopy(A, 1, B, 3, 2);
=> { 가, 나, 다, b, c }
4. fill(), setAll()
- fill() : 배열의 모든 값을 지정된 요소로 채운다. 기존에 생성된 배열을 수정하는 것이 아니라 새로운 배열을 생성한다.
- setAll() : 배열을 채우는데 값을 함수로 받는다.
Arrays.fill(arr, 5); // arr =[5,5,5,5]
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5 +1);
5. sort(), binarySearch()
- sort() : 오름차순으로 정렬
binarySearch()
: 배열에서 주어진 값이 있는 index를 반환
binarySearch()는 검색속도가 굉장히 빠르지만 배열이 sort()되어있지 않으면 사용할 수 없다는 단점이 있다. 이진검색을 사용하려면 적용하려는 배열을 먼저 sort()하고 사용하자.