ABOUT ME

-

  • JAVA) copyOf() 메소드, copyOfRange() 메소드 비교
    Java 2020. 7. 14. 11:51
    copyOf() 메소드

     

    • copyOf() 메소드는 전달받은 배열의 특정 길이만큼을 새로운 배열로 복사하여 반환.
    • copyOf() 메소드는 첫 번째 매개변수로 원본 배열을 전달받고, 두 번째 매개변수로 원본 배열에서 새로운 배열로 복사할 요소의 개수를 전달받고 원본 배열과 같은 타입의 복사된 새로운 배열을 반환.
    • 이때 새로운 배열의 길이가 원본 배열보다 길면, 나머지 요소는 배열 요소의 타입에 맞게 다음과 같은 기본값으로 채워집니다.

     

    ex)

     

    int[] arr1 = {1, 2, 3, 4, 5};

     int[] arr2 = Arrays.copyOf(arr1, 3);

     

    for (int i 0; i arr2.length; i++) {

        System.out.print(arr2[i] + ",");

    } // 1,2,3

     

     int[] arr3 = Arrays.copyOf(arr1, 10);

    for (int 0; i arr3.length; i++) {

        System.out.print(arr3[i] + ",");

    } // 1,2,3,4,5,0,0,0,0,0

     

    copyOfRange() 메소드
    • copyOfRange() 메소드는 전달받은 배열의 특정 범위에 해당하는 요소만을 새로운 배열로 복사하여 반환.
    • copyOfRange() 메소드는 첫 번째 매개변수로 복사의 대상이 될 원본 배열을 전달.
    • 두 번째 매개변수로는 원본 배열에서 복사할 시작 인덱스를 전달받고, 세 번째 매개변수로는 마지막으로 복사될 배열 요소의 바로 다음 인덱스를 전달받습는다.
    • 즉, 세 번째 매개변수로 전달된 인덱스 바로 전까지의 배열 요소까지만 복사됩니다. 그리고 원본 배열과 같은 타입의 복사된 새로운 배열을 반환.

     

    ex)

     

    int[] arr1 = {1, 2, 3, 4, 5};

     

    int[] arr2 = Arrays.copyOfRange(arr1, 2, 4);

    for (int 0; i arr2.length; i++) {

        System.out.print(arr2[i] + ",");

    } // 3,4

     

    반응형

    댓글

Designed by Me.