Kako klonirati nizove u Javi

Kako Klonirati Nizove U Javi



Sadržaj niza mora se kopirati u drugi niz ako sadržaj glavnog niza treba ostati nepromijenjen. Ova vrsta zadatka naziva se klon niza. Niz se može klonirati u Javi bez korištenja bilo koje ugrađene funkcije ili upotrebe određene ugrađene funkcije. Java ima mnogo ugrađenih funkcija za kloniranje polja. U ovom vodiču prikazani su različiti načini kloniranja niza u Javi.

Primjer 1: Kopiranje niza pomoću operatora dodjele (=).

U Javi, kada je varijabla polja dodijeljena drugoj varijabli polja, obje varijable polja odnosit će se na istu lokaciju u memoriji. Dakle, ako se vrijednost bilo kojeg indeksa jednog niza ažurira, vrijednost istog indeksa drugog niza se mijenja. Napravite Java datoteku sa sljedećim kodom da biste saznali kako polje radi kada je dodijeljeno drugoj varijabli polja. Druga vrijednost indeksa drugog polja ažurira se u kodu nakon dodjele prvog polja drugom polju.







javna klasa CloneArray1
{
public static void main ( Niz [ ] args )
{

// Deklarirajte glavni niz
Niz [ ] glavni niz = { 'Knjiga' , 'olovka' , 'Rular' , 'Papir' } ;

System.out.println ( 'Vrijednosti glavnog niza: ' ) ;
za ( String val : mainArray )
{
System.out.print ( val + ' ' ) ;
}

// Prebrojite veličina glavnog niza
int len ​​= mainArray.length;
// Deklarirajte drugi niz
Niz [ ] copiedArray = novi niz [ samo ] ;

// Pogledajte prvi niz prema drugom nizu
kopirani niz = glavni niz;

// Promijenite drugu vrijednost oba niza
kopirani niz [ 1 ] = 'Olovka' ;

System.out.println ( ' \n \n Vrijednosti glavnog niza nakon ažuriranja: ' ) ;
za ( String val : mainArray )
{
System.out.print ( val + ' ' ) ;
}
System.out.println ( ' \n \n Vrijednosti drugog polja nakon ažuriranja: ' ) ;
za ( String val : copiedArray )
{
System.out.print ( val + ' ' ) ;
}
}
}


Izlaz:



Sljedeći izlaz pokazuje da drugi indeks oba niza sadrži istu vrijednost nakon ažuriranja:







Primjer 2: Korištenje metode Clone().

Ako želite napraviti klon niza koji će biti pohranjen na različitim mjestima u memoriji, morate koristiti ugrađenu metodu Jave. Clone() je jedna od metoda koja stvara kopiju niza, a kopirani niz neće utjecati na glavni niz ako se bilo koji indeks ažurira ili obrnuto. Napravite Java datoteku sa sljedećim kodom da pokažete korištenje metode clone() za kloniranje niza nizova. Glavni niz i kopirani niz ispisuju se nakon ažuriranja četvrtog elementa kopiranog niza.

javna klasa CloneArray2
{
public static void main ( Niz [ ] args )
{
// Deklarirajte glavni niz
Niz [ ] glavni niz = { 'Knjiga' , 'olovka' , 'Rular' , 'Papir' } ;

// Prebrojite veličina glavnog niza
int len ​​= mainArray.length;
// Deklarirajte drugi niz
Niz [ ] copiedArray = novi niz [ samo ] ;

// Napravite kopiju prvog niza
kopirani niz = glavni niz.klon ( ) ;

// Promijenite drugu vrijednost drugog polja
kopirani niz [ 3 ] = 'Olovka' ;

System.out.println ( 'Vrijednosti glavnog niza nakon ažuriranja: ' ) ;
za ( String val : mainArray )
{
System.out.print ( val + ' ' ) ;
}
System.out.println ( ' \n \n Vrijednosti drugog polja nakon ažuriranja: ' ) ;
za ( String val : copiedArray )
{
System.out.print ( val + ' ' ) ;
}
}
}


Izlaz:



Sljedeći izlaz pokazuje da se vrijednost četvrtog indeksa glavnog niza nije promijenila nakon ažuriranja četvrtog indeksa kopiranog niza:

Primjer 3: Korištenje metode Arraycopy().

Metoda arraycopy() još je jedna ugrađena metoda Jave za izradu klona varijable polja. Ova metoda ima četiri argumenta. Prvi argument sadrži glavno polje. Drugi argument sadrži početni indeks. Treći argument sadrži kopirani niz. Četvrti argument sadrži duljinu niza. Napravite Java datoteku sa sljedećim kodom koji pokazuje upotrebu metode arraycopy() za izradu klona niza:

javna klasa CloneArray3
{
public static void main ( Niz [ ] args )
{
// Deklarirajte glavni niz
int [ ] glavni niz = { 23 , 67 , Četiri pet , 90 , 49 } ;

// Prebrojite veličina glavnog niza
int len ​​= mainArray.length;
// Deklarirajte drugi niz
int [ ] copiedArray = novi int [ samo ] ;

// Napravite kopiju prvog niza
System.arraycopy ( glavni niz, 0 , kopirani niz, 0 , samo ) ;

// Promijeni posljednji vrijednost drugog niza
kopirani niz [ samo- 1 ] = 80 ;

System.out.println ( 'Vrijednosti glavnog niza nakon ažuriranja: ' ) ;
za ( int val : glavni niz )
{
System.out.print ( val + ' ' ) ;
}
System.out.println ( ' \n \n Vrijednosti drugog polja nakon ažuriranja: ' ) ;
za ( int val : kopirani niz )
{
System.out.print ( val + ' ' ) ;
}
}
}


Izlaz:

Sljedeći izlaz pokazuje da se posljednji element glavnog niza nije promijenio nakon ažuriranja posljednjeg indeksa kopiranog niza:

Zaključak

Upotreba metoda clone() i arraycopy() za izradu klona niza u Javi prikazana je u ovom vodiču pomoću više primjera.