Jak skopiować tablicę w Javie

Jak skopiować tablicę w Javie
Jeśli jedna tablica jest skopiowana do drugiej, wynikiem powinno być to, że istnieją dwie niezależne tablice o dwóch różnych nazwach, ale z tymi samymi odpowiednimi wartościami. Zmiana wartości jednego elementu tablicy nie powinna powodować żadnej zmiany odpowiedniego elementu drugiej tablicy.

Gdy tablica jest naprawdę skopiowana do innej, jeśli długość nowej tablicy jest krótsza niż długość oryginalnej tablicy, wówczas nowa tablica jest kopią, ale obcięty na skopiowanej długości. Jeśli nowa tablica jest dłuższa, wówczas dodatkowe elementy pod koniec są wypełnione wartościami domyślnymi typu danych. Aby jedna tablica została skopiowana do drugiej, obie tablice muszą być tego samego typu lub typu kompatybilnego.

Java ma metodę kopiowania jednej tablicy do drugiej. Ta metoda jest metodą copyof () i jest przeciążona dla różnych typów danych. Jest to statyczna metoda klasy tablicy. „Statyczne” oznacza, że ​​tablica nie musi być tworzona, aby zastosować metodę. Używa nazwy klasy, tablica, z pierwszym „A” w wielkim poziomie. Metoda zwraca skopiowaną tablicę. W tym artykule wyjaśniono różne przeciążone formy metody copyof (). Obejmuje sposób kopiowania typów referencyjnych. Jak skopiować zakres tablicy nie jest pominięty.

Kopiowanie szeregu wartości logicznych

Składnia to:

static boolean [] copyof (boolean [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, false jest wyściełane jako wartości do nowej tablicy, aby mieć nową długość. Poniższy program ilustruje to:

Importuj Java.Util.Tablice;
Klasa publiczna THEClass
public static void main (string [] args)
boolean [] orig = true, true, true, true, true;
boolean [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
boolean [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
boolean [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

Prawda prawda
prawdziwa prawdziwa prawdziwa prawda
Prawda prawdziwa prawda prawdziwa prawda fałsz fałsz

W pierwszej linii wyjściowej jest obcięcie. Dla drugiej linii wyjściowej obie tablice są takie same. Nowa tablica jest dłuższa niż oryginalna tablica dla trzeciej linii wyjściowej.

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie tablicy wartości bajtów

Składnia to:

static bajte [] copyof (bajte [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0 jest wyściełane jako wartości nowej tablicy, aby mieć nową długość. Poniższy kod metody main () ilustruje to:

static bajte [] copyof (bajte [] oryginał, int newLength)
Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0 jest wyściełane jako wartości nowej tablicy, aby mieć nową długość. Poniższy kod metody main () ilustruje to:
public static void main (string [] args)
bajt [] orig = 1, 2, 3, 4, 5;
bajt [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
bajt [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
bajt [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

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

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie szeregu wartości charytatywnych

Składnia to:

static char [] copyof (char [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, „jest wyściełany jako wartości nowej tablicy, aby mieć nową długość. Przykład kodu:

public static void main (string [] args)
char [] orig = „a”, „b”, „c”, „d”, „e”;
char [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
char [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
char [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

A B c
A B C D E
A B C D E ”

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie szeregu podwójnych wartości

Składnia to:

static double [] copyof (podwójne [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0.0 jest wyściełany jako wartości nowej tablicy, aby mieć nową długość. Przykład kodu:

public static void main (string [] args)
Double [] orig = 1.5, 2.5, 3.5, 4.5, 5.5;
Double [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Double [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Double [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

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

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie tablicy wartości pływakowych

Składnia to:

static float [] copyof (float [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0.0 jest wyściełany jako wartości nowej tablicy, aby mieć nową długość. Przykład kodu:

public static void main (string [] args)
float [] orig = 1.5f, 2.5f, 3.5f, 4.5f, 5.5f;
float [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
float [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
float [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

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

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie tablicy wartości INT

Składnia to:

static int [] copyof (int [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0 jest wyściełane jako wartości nowej tablicy, aby mieć nową długość. Przykład kodu:

public static void main (string [] args)
int [] orig = 1, 2, 3, 4, 5;
int [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
int [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
int [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

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

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie szeregu długich wartości

Składnia to:

statyczne długie [] copyof (długie [] oryginalne, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0 jest wyściełane jako wartości nowej tablicy, aby mieć nową długość. Przykład kodu:

public static void main (string [] args)
Long [] orig = 1, 2, 3, 4, 5;
długie [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
długie [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
długie [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

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

Długość nowej tablicy jest określana przez parametr nowej długości składni metody copyof ().

Kopiowanie szeregu krótkich wartości

Składnia to:

static Short [] copyof (short [] oryginał, int newLength)

Oryginał to nazwa oryginalnej tablicy. Nowa długość to długość nowej lub skopiowanej tablicy. Jeśli jest krótszy, kopia jest obcięta w nowej długości. Jeśli jest dłuższy, 0 jest wyściełane jako wartości nowej tablicy, aby mieć nową długość. Przykład kodu:

public static void main (string [] args)
Short [] orig = 1, 2, 3, 4, 5;
Short [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Short [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Short [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

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

Kopiowanie szeregu typów danych referencyjnych

Dobrym przykładem typu danych odniesienia jest obiekt ciągów, utworzony z klasy ciągów. Jego składnia copyof () jest taka sama jak powyższe składni. Poniższy kod to ilustruje:

Importuj Java.Util.Tablice;
Klasa publiczna THEClass
public static void main (string [] args)
String [] orig = „one”, „dwa”, „trzy”, „cztery”, „pięć”;
String [] cpy1 = tablice.copyof (orig, 3);
dla (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
String [] cpy2 = tablice.copyof (orig, 5);
dla (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
String [] cpy3 = ​​tablice.copyof (orig, 7);
dla (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Wyjście to:

raz Dwa Trzy
jeden dwa trzy cztery pięć
jeden dwa trzy cztery pięć null null

Wartość domyślna dla typu danych odniesienia jest null.

Kopiowanie zasięgu

Zakres tablicy można skopiować. Składnia do skopiowania zakresu tablicy znaków jest:

static char [] copyofrange (char [] oryginał, int from, int do)

„From” jest pierwszym indeksem, a „to” jest ostatnim indeksem, którego wartość zakresu, po prostu nie jest uwzględniona w kopii. Przykładowy kod:

public static void main (string [] args)
char [] orig = „a”, „b”, „c”, „d”, „e”;
char [] cpy = tablice.copyofrange (orig, 1, 3);
dla (int i = 0; i

Wyjście to:

PNE

Kopiowanie zakresów typów danych prymitywnych i referencyjnych jest podobne do tego kodu.

Wniosek

Klasa macierzy ma statyczną przeciążoną metodę kopiowania tablic. Służy do kopiowania całej tablicy. Jeśli skopiowana tablica jest krótka, kopiowanie zostanie wykonane do wskazanej długości obrotowej. Jeśli skopiowana tablica jest dłuższa niż oryginalna tablica, wartość domyślna zostanie wyściełana dla dodatkowych dodanych elementów. Do kopiowania zakresu można użyć metody statycznej CopyofRange (). Następną rzeczą, którą czytelnik powinien przestudiować, jest skopiowanie szeregu typów ogólnych, .