본문 바로가기
Java

System.arraycopy(), Arrays.copyOf()

by SpearZero 2020. 6. 11.

System.arraycopy(), Arrays.copyOf()

StringBuilder의 append() 메서드를 살펴보던중 다음과 같은 메서드를 발견하게 되었다.

배열을 복사하는 메서드는 System.arraycopy() 밖에 몰랐기 때문에 Arrays.copyOf() 메서드는 System.arraycopy()와 어떻게 다른지 인터넷을 찾아봤다.

    int[] arr = {1,2,3,4,5};
    int[] sysCopyArr = new int[10];

    System.arraycopy(arr, 0, sysCopyArr, 2,5);

    // [0, 0, 1, 2, 3, 4, 5, 0, 0, 0]
    System.out.println(Arrays.toString(sysCopyArr));

    int[] copyOfArr = Arrays.copyOf(arr, 5);
    // [1, 2, 3, 4, 5]
    System.out.println(Arrays.toString(copyOfArr));

System.arraycopy()메서드는 존재하는 배열에 값을 복사하고, Arrays.copyOf는 새로운 배열을 생성해서 값을 복사한다.

Arrays.copyOf() 메서드가 어떻게 구현되었는지 찾아보니 다음과 같았다.

Arrays.copyOf()는 내부적으로 System.arraycopy()를 사용한다.

'Java' 카테고리의 다른 글

카카오 좌표로 주소 변환하기  (0) 2021.08.11
Java Object를 Map으로 변경하기  (0) 2020.06.21