Java에서 배열 복사

Rupam Yadav 2023년10월12일
  1. Java에서Arrays.copyOf()를 사용하여 다른 배열에 복사
  2. Java에서System.arraycopy()를 사용하여 다른 배열에 복사
  3. Java에서clone()을 사용하여 2 차원 배열을 다른 배열로 복사
Java에서 배열 복사

이 자습서에서는 Java의 다른 배열로 배열을 복사하는 몇 가지 방법을 소개합니다. 이를 달성하기 위해 루프와 함께 수동 접근 방식을 사용할 수 있지만 단순성을 위해 해당 방법을 사용하지 않고 바퀴를 재발 명하고 싶지 않습니다.

Java에서Arrays.copyOf()를 사용하여 다른 배열에 복사

지정된 배열을 새 배열로 복사하는Arrays 클래스의copyOf()메소드를 사용할 수 있습니다. copyOf()는 두 개의 인수를받습니다. 첫 번째는 복사 할 배열이고 두 번째는 새 배열의 길이입니다.

아래 예제에서array1array2로 복사합니다. 새 배열의 길이는array1과 같습니다. 새 배열의 크기가 이전 배열보다 큰 경우 모든 빈 인덱스는 0으로 채워집니다. 루프를 사용하여 새 배열의 항목과 해당 인덱스를 인쇄했습니다.

import java.util.Arrays;

public class CopyArray {
  public static void main(String[] args) {
    int[] array1 = new int[] {2, 4, 6, 8, 10};

    int[] array2 = Arrays.copyOf(array1, array1.length);

    for (int i = 0; i < array2.length; i++) {
      System.out.println("array2 position " + i + ": " + array2[i]);
    }
  }
}

출력:

array2 position 0: 2
array2 position 1: 4
array2 position 2: 6
array2 position 3: 8
array2 position 4: 10

Java에서System.arraycopy()를 사용하여 다른 배열에 복사

System.arraycopy()는 이전 배열의 지정된 위치에서 새 배열의 위치로 배열 항목을 복사하기 때문에 이전 배열의 하위 항목으로 새 배열을 만들고 싶을 때 유용 할 수 있습니다.

System.arraycopy()는 복사 할 배열array1, 시작 위치array1, 새 배열array2, 시작 위치array2, 항목 수의 4 개 이상의 인수를받습니다. array2에 복사됩니다. 출력에는array2의 항목이 표시됩니다.

public class CopyArray {
  public static void main(String[] args) {
    String[] array1 = new String[] {"Adam", "Claire", "Dave", "Greg", "Halsey", "Jane", "Kylie"};

    String[] array2 = new String[array1.length];

    System.arraycopy(array1, 0, array2, 0, array1.length);

    for (int i = 0; i < array2.length; i++) {
      System.out.println("array2 position " + i + ": " + array2[i]);
    }
  }
}

출력:

array2 position 0: Adam
array2 position 1: Claire
array2 position 2: Dave
array2 position 3: Greg
array2 position 4: Halsey
array2 position 5: Jane
array2 position 6: Kylie

Java에서clone()을 사용하여 2 차원 배열을 다른 배열로 복사

Java에서 배열을 복사하는 마지막 방법은 복사 된 배열 항목과 함께 새 배열을 반환하는clone()입니다. 이 예에서는 8 개의 요소가있는 2 차원 배열 array1을 사용합니다. 배열을 복사하기 위해array1.clone()을 사용하고 새로운 배열array2 요소를 인쇄하기 위해 두 개의 루프를 사용합니다.

public class CopyArray {
  public static void main(String[] args) {
    int[][] array1 = {{10, 20}, {30, 40}, {50, 60}, {70, 80}};

    int[][] array2 = array1.clone();

    for (int i = 0; i < array2.length; i++) {
      for (int j = 0; j < array2[i].length; j++) {
        System.out.println("array2 position [" + i + "][" + j + "] : " + array2[i][j]);
      }
    }
  }
}

출력:

array2 position [0][0] : 10
array2 position [0][1] : 20
array2 position [1][0] : 30
array2 position [1][1] : 40
array2 position [2][0] : 50
array2 position [2][1] : 60
array2 position [3][0] : 70
array2 position [3][1] : 80
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Array