Arrays

chas369·2022년 10월 18일
0

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()

  1. fill() : 배열의 모든 값을 지정된 요소로 채운다. 기존에 생성된 배열을 수정하는 것이 아니라 새로운 배열을 생성한다.
  2. setAll() : 배열을 채우는데 값을 함수로 받는다.
Arrays.fill(arr, 5); // arr =[5,5,5,5]
Arrays.setAll(arr, (i) -> (int)(Math.random() * 5 +1);

5. sort(), binarySearch()

  1. sort() : 오름차순으로 정렬
  2. binarySearch() : 배열에서 주어진 값이 있는 index를 반환
    binarySearch()는 검색속도가 굉장히 빠르지만 배열이 sort()되어있지 않으면 사용할 수 없다는 단점이 있다. 이진검색을 사용하려면 적용하려는 배열을 먼저 sort()하고 사용하자.

0개의 댓글