[TIL-Java] 배열복사

이용준·2022년 11월 17일
0

TIL

목록 보기
8/21

메서드를 통한 자바의 배열 복사

  1. copyOf
  • 지정된 배열(및 절단 또는 패딩을 0으로 복사하여)에서 복사본이 지정된 길이를 갖는다.
    Oracle Help Center 참고

    Arrays.copyOf(type[] original, int newLength)
     //  original - 복사 대상(원 배열)
     //  newLength - 복사할 범위
     
     //예
     int[] array1 = {1,2,3,4};
     int[] array2 = Arrays.copyOf(array1,array1.length);
     
     //(출력)
     for (int i = 0; i < array2.length; i++){
         System.out.println(array2[i]);
      }
    }  
  1. copyOfRange
  • 원본 배열의 지정된 범위를 새 배열로 생성한다.
    Oracle Help Center 참고
    Arrays.copyOfRange(type[] original, int from, int to)
    // original - 복사할 대상(원 배열)
    // from - 시작 범위
    // to - 끝 범위
    
    // 예
    int[] array1 = {1, 2, 3, 4};
    int[] array2 = Arrays.copyOfRange(array1, 1, 3);
    //(출력)
    for (int i = 0; i < array2.length; i++){
               System.out.println(array2[i]);
           }  // 2,3
  1. System.arrayCopy
System.arraycopy(Object src, int srcPos, Object dest, int desPos, int length)
// src - 원본 배열
// srcPos - 원본의 시작 위치
// dest - 생성할 배열
// destPos - 생성할 배열의 시작위치
// length - 복사할 배열의 요소 수(=복사할 길이)

//(예)
int arr1[] = {0,1,2,3,4,5};
int arr2[] = {5,10,20,30,40,50};

System.arraycopy(arr1, 0, arr2, 0, 1);
for (int i=0; i<arr2.length; i++){
  System.out.println(arr2[i]);
} // 0 10, 20, 30, 40, 50

tutorialspoint 참고

  • 복사할 배열(arr2)의 0번 위치부터 1번 위치까지의 값을 원본 배열(arr1)의 값(srcPos)으로 변경한다.
  • 배열의 대치를 나타내는듯 하다.
profile
뚝딱뚝딱

0개의 댓글