Array in Java kopieren

Rupam Yadav 12 Oktober 2023
  1. Kopieren eines Arrays in ein anderes mit Arrays.copyOf() in Java
  2. Kopieren eines Arrays in ein anderes mit System.arraycopy() in Java
  3. Kopieren eines zweidimensionalen Arrays in ein anderes mit clone() in Java
Array in Java kopieren

In diesem Tutorial werden verschiedene Methoden vorgestellt, um in Java ein Array in ein anderes Array zu kopieren. Wir können den manuellen Ansatz mit Schleifen verwenden, um dies zu erreichen, aber wir möchten diese Methode der Einfachheit halber nicht verwenden, und wir wollen das Rad nicht neu erfinden.

Kopieren eines Arrays in ein anderes mit Arrays.copyOf() in Java

Wir können die Methode copyOf() der Klasse Arrays verwenden, die das angegebene Array in ein neues Array kopiert. Die Methode copyOf() nimmt zwei Argumente entgegen; das erste ist das zu kopierende Array, das zweite die Länge des neuen Arrays.

Im folgenden Beispiel kopieren wir array1 nach array2. Die Länge des neuen Arrays ist gleich der Länge von array1. Wenn das neue Array eine größere Größe als das alte Array hat, dann wird jeder leere Index mit einer Null aufgefüllt. Wir haben eine Schleife verwendet, um die Elemente des neuen Arrays und ihre Indizes auszugeben.

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]);
    }
  }
}

Ausgabe:

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

Kopieren eines Arrays in ein anderes mit System.arraycopy() in Java

System.arraycopy() kann nützlich sein, wenn wir ein neues Array mit den Unterelementen des alten Arrays erstellen wollen, da es die Array-Elemente von einer bestimmten Position des alten Arrays an die Position des neuen Arrays kopiert.

System.arraycopy() benötigt mindestens vier Argumente, nämlich das zu kopierende Array array1, die Startposition von array1, das neue Array array2, die Startposition von array2 und die Anzahl der Elemente, die nach array2 kopiert werden sollen. Die Ausgabe zeigt die Elemente in 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]);
    }
  }
}

Ausgabe:

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

Kopieren eines zweidimensionalen Arrays in ein anderes mit clone() in Java

Die letzte Methode zum Kopieren eines Arrays in Java ist clone(), die ein neues Array mit den kopierten Array-Elementen zurückgibt. In diesem Beispiel verwenden wir ein zweidimensionales Array array1, das acht Elemente hat. Wir verwenden array1.clone(), um das Array zu kopieren und zwei Schleifen, um die Elemente des neuen Arrays array2 auszugeben.

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]);
      }
    }
  }
}

Ausgabe:

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

Verwandter Artikel - Java Array