Hvordan kopiere matrise i Java

Hvordan kopiere matrise i Java
Hvis en matrise er kopiert til en annen, bør resultatet være at det er to uavhengige matriser med to forskjellige navn, men med de samme tilsvarende verdiene. En endring i verdien av det ene arrayelementet skal ikke resultere i noen endring i det tilsvarende elementet i den andre matrisen.

Når en matrise virkelig er kopiert til en annen, hvis lengden på den nye matrisen er kortere enn lengden på den originale matrisen, er den nye matrisen en kopi, men avkortet i den kopierte lengden. Hvis den nye matrisen er lengre, er de ekstra elementene mot enden fylt med standardverdiene for datatypen. For at en matrise skal kopieres til en annen, må begge matriser være av samme type eller kompatible typer.

Java har en metode for å kopiere en matrise til en annen. Denne metoden er CopyOf () -metoden, og den er overbelastet for de forskjellige datatypene. Det er en statisk metode i matriseklassen. "Statisk" betyr at en matrise ikke trenger å bli instantiert for at metoden skal brukes. Den bruker klassenavnet, Array, med den første 'A' i store bokstaver. Metoden returnerer den kopierte matrisen. Denne artikkelen forklarer de forskjellige overbelastede formene for CopyOf () -metoden. Det inkluderer hvordan du kopierer referansetyper. Hvordan du kopierer en matriseområde er ikke utelatt.

Kopiere en rekke boolske verdier

Syntaksen er:

statisk boolsk [] copyof (boolean [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, er falskt polstret som verdier til den nye matrisen for å ha den nye lengden. Følgende program illustrerer dette:

Importer Java.util.Matriser;
public class theclass
public static void main (String [] args)
boolean [] orig = sann, sann, sann, sann, sann;
boolean [] cpy1 = matriser.copyof (orig, 3);
for (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
boolean [] cpy2 = matriser.copyof (orig, 5);
for (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
boolean [] cpy3 = ​​matriser.copyof (orig, 7);
for (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Utgangen er:

sant sant
sant sant sant sant sant
sant sant sant sant sant sant falskt falskt

For den første utgangslinjen er det avkortning. For den andre utgangslinjen er begge matriser de samme. Den nye matrisen er lengre enn den originale matrisen for den tredje utgangslinjen.

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke byteverdier

Syntaksen er:

statisk byte [] copyof (byte [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, er 0 polstret som verdier til den nye matrisen, for å ha den nye lengden. Følgende Main () -metodekode illustrerer dette:

statisk byte [] copyof (byte [] original, int newlength)
Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, er 0 polstret som verdier til den nye matrisen, for å ha den nye lengden. Følgende Main () -metodekode illustrerer dette:
public static void main (String [] args)
byte [] orig = 1, 2, 3, 4, 5;
byte [] cpy1 = matriser.copyof (orig, 3);
for (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
byte [] cpy2 = matriser.copyof (orig, 5);
for (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
byte [] cpy3 = ​​matriser.copyof (orig, 7);
for (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Utgangen er:

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

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke røyeverdier

Syntaksen er:

statisk char [] copyof (char [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, "er polstret som verdier til den nye matrisen, for å ha den nye lengden. Kodeeksempel:

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

Utgangen er:

A B C
A B C D E
A B C D E "

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke doble verdier

Syntaksen er:

statisk dobbel [] copyof (dobbel [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, 0.0 er polstret som verdier til den nye matrisen, for å ha den nye lengden. Kodeeksempel:

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

Utgangen er:

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

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke flyteverdier

Syntaksen er:

statisk float [] copyof (float [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, 0.0 er polstret som verdier til den nye matrisen, for å ha den nye lengden. Kodeeksempel:

public static void main (String [] args)
float [] orig = 1.5f, 2.5f, 3.5f, 4.5f, 5.5f;
Float [] CPY1 = Arrays.copyof (orig, 3);
for (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
Float [] CPY2 = Arrays.copyof (orig, 5);
for (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Float [] CPY3 = Arrays.copyof (orig, 7);
for (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Utgangen er:

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

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke int -verdier

Syntaksen er:

statisk int [] copyof (int [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, er 0 polstret som verdier til den nye matrisen, for å ha den nye lengden. Kodeeksempel:

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

Utgangen er:

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

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke lange verdier

Syntaksen er:

statisk lang [] copyof (lang [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, er 0 polstret som verdier til den nye matrisen, for å ha den nye lengden. Kodeeksempel:

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

Utgangen er:

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

Lengden på den nye arrayen bestemmes av NewLength -parameteren til CopyOf () -metoden syntaks.

Kopiere en rekke korte verdier

Syntaksen er:

statisk kort [] copyof (kort [] original, int newlength)

Original er navnet på den originale matrisen. Newlength er lengden på den nye eller kopierte matrisen. Hvis den er kortere, er kopien avkortet på Newlength. Hvis det er lengre, er 0 polstret som verdier til den nye matrisen, for å ha den nye lengden. Kodeeksempel:

public static void main (String [] args)
kort [] orig = 1, 2, 3, 4, 5;
Kort [] CPY1 = Arrays.copyof (orig, 3);
for (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
kort [] cpy2 = matriser.copyof (orig, 5);
for (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
kort [] cpy3 = ​​matriser.copyof (orig, 7);
for (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Utgangen er:

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

Kopiere en rekke referansedatatyper

Et godt eksempel på referansedatatypen er strengobjektet, instantiert fra strengklassen. Dens CopyOf () syntaks er den samme som syntaksene ovenfor. Følgende kode illustrerer dette:

Importer Java.util.Matriser;
public class theclass
public static void main (String [] args)
Streng [] orig = "one", "to", "tre", "fire", "fem";
Streng [] CPY1 = Arrays.copyof (orig, 3);
for (int i = 0; i< cpy1.length; i++) System.out.print(cpy1[i]); System.out.print("); System.out.println();
String [] CPY2 = Arrays.copyof (orig, 5);
for (int i = 0; i< cpy2.length; i++) System.out.print(cpy2[i]); System.out.print("); System.out.println();
Streng [] CPY3 = Arrays.copyof (orig, 7);
for (int i = 0; i< cpy3.length; i++) System.out.print(cpy3[i]); System.out.print("); System.out.println();

Utgangen er:

en to tre
en to tre fire fem
en to tre fire fem null null

Standardverdien for referansedatatypen er null.

Kopiere et område

Utvalget av en matrise kan kopieres. Syntaksen for å kopiere rekkevidden til en rekke chars er:

statisk char [] copyOfRange (char [] original, int fra, int til)

“Fra” er den første indeksen, og “til” er den siste indeksen, hvis verdi av området, bare ikke er inkludert, i kopien. Eksempelkode:

public static void main (String [] args)
char [] orig = 'a', 'b', 'c', 'd', 'e';
Char [] CPY = Arrays.copyOfRange (orig, 1, 3);
for (int i = 0; i

Utgangen er:

B c

Kopiering av rekkevidden av primitive og referansedatatyper ligner på denne koden.

Konklusjon

Array -klassen har den statiske overbelastede metoden for å kopiere matriser. Det brukes til å kopiere hele matrisen. Hvis den kopierte matrisen er kort, vil kopiering bli gjort til den avkortede lengden som er angitt. Hvis den kopierte matrisen er lengre enn den opprinnelige matrisen, vil standardverdien bli polstret for de ekstra tilsatte elementene. Static CopyOfRange () -metoden kan brukes til å kopiere et område. Det neste leseren skal studere er hvordan du kopierer en rekke generiske typer, .