So kopieren Sie Array in Java

So kopieren Sie Array in Java
Wenn ein Array auf ein anderes kopiert wird, sollte das Ergebnis sein, dass es zwei unabhängige Arrays mit zwei verschiedenen Namen gibt, jedoch mit den gleichen entsprechenden Werten. Eine Änderung des Wertes eines Array -Elements sollte nicht zu einer Änderung des entsprechenden Elements des anderen Arrays führen.

Wenn ein Array wirklich zu einem anderen kopiert wird, wenn die Länge des Neuen Arrays kürzer ist als die Länge des ursprünglichen Arrays, dann ist das Neue Array eine Kopie, aber an der kopierten Länge abgeschnitten. Wenn das Neue Array länger ist, werden die zusätzlichen Elemente gegenüber seinem Ende mit den Standardwerten des Datentyps gefüllt. Damit ein Array auf einen anderen kopiert werden kann, müssen beide Arrays denselben Typ oder kompatiblen Typen haben.

Java hat eine Methode, um ein Array auf einen anderen zu kopieren. Diese Methode ist die methode copyof () und für die verschiedenen Datentypen überlastet. Es ist eine statische Methode der Array -Klasse. "Statisch" bedeutet, dass ein Array nicht so instanziiert werden muss, dass die Methode verwendet wird. Es verwendet den Klassennamen Array mit dem ersten 'a' in Großbuchstaben. Die Methode gibt das kopierte Array zurück. Dieser Artikel erläutert die verschiedenen überladenen Formulare der Copyof () -Methode. Es enthält, wie man Referenztypen kopiert. Wie man einen Array -Bereich kopiert, wird nicht ausgelassen.

Kopieren einer Reihe von booleschen Werten

Die Syntax ist:

statischer Boolean [] Copyof (Boolean [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird FALSE als Werte zum Neuarray gepolstert, um die neue Länge zu haben. Das folgende Programm zeigt dies:

Java importieren.Util.Arrays;
öffentliche Klasse Theclass
public static void main (String [] args)
boolean [] orig = wahr, wahr, wahr, wahr, wahr;
boolean [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
boolean [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
boolean [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

wahr wahr wahr
wahr wahr wahr wahr wahr wahr
wahr wahr wahr wahr wahr wahrer falsches falsches falsch

Für die erste Ausgangslinie gibt es eine Kürzung. Für die zweite Ausgangsleitung sind beide Arrays gleich. Das Neue Array ist länger als das ursprüngliche Array für die dritte Ausgangsleitung.

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren einer Reihe von Byte -Werten

Die Syntax ist:

statisches Byte [] Copyof (Byte [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird 0 als Werte für das Neue Array gepolstert, um die neue Länge zu haben. Der folgende Main () Method -Code veranschaulicht dies:

statisches Byte [] Copyof (Byte [] Original, int NewLength)
Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird 0 als Werte für das Neue Array gepolstert, um die neue Länge zu haben. Der folgende Main () Method -Code veranschaulicht dies:
public static void main (String [] args)
byte [] orig = 1, 2, 3, 4, 5;
Byte [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Byte [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Byte [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren einer Reihe von Zeichenwerten

Die Syntax ist:

static char [] copyof (char [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird "als Werte für das Neue Array gepolstert, um die Neulänge zu haben. Codebeispiel:

public static void main (String [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
char [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
char [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
char [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

A b c
A b c d e
A b c d e "

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren einer Reihe von Doppelwerten

Die Syntax ist:

Static Double [] Copyof (Double [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, 0.0 wird als Werte in das Neue Array gepolstert, um die Neulänge zu haben. Codebeispiel:

public static void main (String [] args)
double [] orig = 1.5, 2.5, 3.5, 4.5, 5.5;
double [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
double [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
double [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

1.5 2.5 3.5
1.5 2.5 3.5 4.5 5.5
1.5 2.5 3.5 4.5 5.5 0.0 0.0

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren einer Reihe von Schwimmerwerten

Die Syntax ist:

static float [] copyof (float [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, 0.0 wird als Werte in das Neue Array gepolstert, um die Neulänge zu haben. Codebeispiel:

public static void main (String [] args)
float [] orig = 1.5f, 2.5f, 3.5f, 4.5f, 5.5f;
float [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
float [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
float [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

1.5 2.5 3.5
1.5 2.5 3.5 4.5 5.5
1.5 2.5 3.5 4.5 5.5 0.0 0.0

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren eines Arrays von int -Werten

Die Syntax ist:

static int [] copyof (int [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird 0 als Werte für das Neue Array gepolstert, um die neue Länge zu haben. Codebeispiel:

public static void main (String [] args)
int [] orig = 1, 2, 3, 4, 5;
int [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
int [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
int [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren einer Reihe langer Werte

Die Syntax ist:

static long [] copyof (lang [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird 0 als Werte für das Neue Array gepolstert, um die neue Länge zu haben. Codebeispiel:

public static void main (String [] args)
lang [] orig = 1, 2, 3, 4, 5;
lang [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
lang [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
lang [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

Die Länge des Neuarrays wird durch den Parameter NewLength der Copyof () -Methodensyntax bestimmt.

Kopieren einer Reihe von kurzen Werten

Die Syntax ist:

Static Short [] Copyof (Short [] Original, int NewLength)

Original ist der Name des ursprünglichen Arrays. NewLength ist die Länge des neuen oder kopierten Arrays. Wenn es kürzer ist, wird die Kopie bei NewLength abgeschnitten. Wenn es länger ist, wird 0 als Werte für das Neue Array gepolstert, um die neue Länge zu haben. Codebeispiel:

public static void main (String [] args)
kurz [] orig = 1, 2, 3, 4, 5;
kurz [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
kurz [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
kurz [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

1 2 3
1 2 3 4 5
1 2 3 4 5 0 0

Kopieren eines Arrays von Referenzdatentypen

Ein gutes Beispiel für den Referenzdatentyp ist das String -Objekt, das aus der String -Klasse instanziiert ist. Die Copyof () -Syntax entspricht den obigen Syntaxen. Der folgende Code zeigt dies:

Java importieren.Util.Arrays;
öffentliche Klasse Theclass
public static void main (String [] args)
String [] Orig = "One", "Two", "Three", "Four", "Five";
String [] cpy1 = Arrays.Copyof (Orig, 3);
für (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
String [] cpy2 = Arrays.Copyof (Orig, 5);
für (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
String [] cpy3 = ​​Arrays.Copyof (Orig, 7);
für (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Die Ausgabe ist:

eins zwei drei
eins zwei drei vier fünf
ein zwei drei vier fünf null null

Der Standardwert für den Referenzdatentyp ist null.

Kopieren einer Reichweite

Der Bereich eines Arrays kann kopiert werden. Die Syntax zum Kopieren des Bereichs einer Reihe von Zeichen ist:

static char [] copyofrange (char [] original, int von, int to)

"From" ist der erste Index, und "to" ist der letzte Index, dessen Wert der Bereich einfach nicht enthalten ist, in der Kopie. Beispielcode:

public static void main (String [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
char [] cpy = arrays.CopyoFrange (Orig, 1, 3);
für (int i = 0; i

Die Ausgabe ist:

B c

Das Kopieren der Bereiche der primitiven und Referenzdatentypen ähnelt diesem Code.

Abschluss

Die Array -Klasse hat die statische überlastete Methode zum Kopieren von Arrays. Es wird verwendet, um das gesamte Array zu kopieren. Wenn das kopierte Array kurz ist, wird das Kopieren an der angegebenen verkürzten Länge durchgeführt. Wenn das kopierte Array länger als das ursprüngliche Array ist, wird der Standardwert für die zusätzlichen hinzugefügten Elemente gepolstert. Die statische Methode von CopyofRange () kann verwendet werden, um einen Bereich zu kopieren. Das nächste, was der Leser studieren sollte, ist, wie man eine Reihe von generischen Typen kopiert, .