English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quali sono le diverse metodi per copiare un array in un altro array in Java?

Generally, arrays are containers for multiple variables of the same data type. They are fixed in size, determined at the time of creation. Each element in the array is located by a number starting from 0. You can access elements in the array using their names and positions as follows -

System.out.println(myArray[3]);
//Which is 1457
Creating an array in Java:

In Java, arrays are treated as reference types, and you can create an array using a keyword similar to the new object, and fill it using indices as follows -

int myArray[] = new int[7];
myArray[0] = 1254;
myArray[1] = 1458;
myArray[2] = 5687;
myArray[3] = 1457;
myArray[4] = 4554;
myArray[5] = 5445;
myArray[6] = 7524;

O, puoi assegnare direttamente i valori tra parentesi graffe e separarli con virgola (,).

int myArray[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};

Copia l'array

Puoi copiare un array da un altro array in diversi modi -

Copia elemento per elemento -Un metodo è creare un array vuoto utilizzando la lunghezza dell'array originale, quindi copiare ogni elemento (ciclo).

Esempio

import java.util.Arrays;
public class CopyingArray {
   public static void main(String args[]) {
      //Array sorgente (int)
      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
      //Lunghezza dell'array
      int length1 = integerArray1.length;
      //Creare un array vuoto
      int integerArray2[] = new int[length1];
      for (int i = 0; i < length1; i++) {
         integerArray2[i] = integerArray1[i];
      }
      System.out.println("Array originale: "+Arrays.toString(integerArray1));
      System.out.println("Array copiato: "+Arrays.toString(integerArray2));
      //Array di origine (String)
      String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};
      //Lunghezza dell'array
      int length2 = StringArray1.length;
      //Creare un array vuoto
      String StringArray2[] = new String[length2];
      for (int i = 0; i < length2; i++) {
         StringArray2[i] = StringArray1[i];
      }
      System.out.println("Array originale: "+Arrays.toString(StringArray1));
      System.out.println("Array copiato: "+Arrays.toString(StringArray2));
   }
}

Risultato di output

Array originale: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Array copiato: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Array originale: [Mango, Apple, Orange, Banana, Cherries]
Array copiato: [Mango, Apple, Orange, Banana, Cherries]

usare il metodo clone() - classe java.lang.Objectdelclone()Il metodo accetta un oggetto come parametro, crea e restituisce una sua copia.

Esempio

import java.util.Arrays;
public class CopyingArray {
   public static void main(String args[]) {
      //Array sorgente (int)
      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
      //Clonare l'array
      int integerArray2[] = integerArray1.clone();
      System.out.println("Array originale: "+Arrays.toString(integerArray1));
      System.out.println("Array copiato: "+Arrays.toString(integerArray2));
      //Array di origine (String)
      String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};
      //Clonare l'array
      String StringArray2[] = StringArray1.clone();
      System.out.println("Array originale: "+Arrays.toString(StringArray1));
      System.out.println("Array copiato: "+Arrays.toString(StringArray2));
   }
}

Risultato di output

Array originale: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Array copiato: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Array originale: [Mango, Apple, Orange, Banana, Cherries]
Array copiato: [Mango, Apple, Orange, Banana, Cherries]

Utilizzare il metodo System.arraycopy() - il metodo copy() della classe System accetta due array (e altri dettagli) e copia i contenuti di un array in un altro array.

Esempio

import java.util.Arrays;
public class CopyingArray {
   public static void main(String args[]) {
      //Array sorgente (int)
      int integerArray1[] = { 1254, 1458, 5687, 1457, 4554, 5445, 7524};
      //Lunghezza dell'array
      int length1 = integerArray1.length;
      //Array di destinazione
      int integerArray2[] = new int[length1];
      //Copia dell'array
      System.arraycopy(integerArray1, 0, integerArray2, 0, length1);
      System.out.println("Array originale: "+Arrays.toString(integerArray1));
      System.out.println("Array copiato: "+Arrays.toString(integerArray2));
      //Array di origine (String)
      String StringArray1[] = { "Mango", "Apple", "Orange", "Banana", "Cherries"};
      //Lunghezza dell'array
      int length2 = StringArray1.length;
      //Array di destinazione
      String StringArray2[] = new String[length2];
      //Copia dell'array
      System.arraycopy(StringArray1, 0, StringArray2, 0, length2);
      System.out.println("Array originale: "+Arrays.toString(StringArray1));
      System.out.println("Array copiato: "+Arrays.toString(StringArray2));
   }
}

Risultato di output

Array originale: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Array copiato: [1254, 1458, 5687, 1457, 4554, 5445, 7524]
Array originale: [Mango, Apple, Orange, Banana, Cherries]
Array copiato: [Mango, Apple, Orange, Banana, Cherries]