Sådan klones arrays i Java

Sadan Klones Arrays I Java



Indholdet af arrayet skal kopieres til et andet array, hvis indholdet af hovedarrayet skal forblive uændret. Denne type opgave kaldes klonen af ​​et array. Et array kan klones i Java uden at bruge nogen indbygget funktion eller bruge en bestemt indbygget funktion. Java har mange indbyggede funktioner til at klone et array. Forskellige måder at klone et array på i Java er vist i denne tutorial.

Eksempel 1: Kopier et array ved hjælp af Assignment (=) Operator

I Java, når en array-variabel er tildelt en anden array-variabel, vil begge array-variabler referere til den samme placering af hukommelsen. Så hvis værdien af ​​et indeks for et array opdateres, ændres værdien af ​​det samme indeks i et andet array. Opret en Java-fil med følgende kode for at vide, hvordan arrayet fungerer, når det er tildelt en anden arrayvariabel. Den anden indeksværdi for det andet array opdateres i koden efter tildeling af det første array til det andet array.







offentlig klasse CloneArray1
{
offentlig statisk tomrum hoved ( Snor [ ] args )
{

// Deklarer hovedarrayet
Snor [ ] mainArray = { 'Bestil' , 'Pen' , 'regelmæssig' , 'Papir' } ;

System.out.println ( 'Værdierne for hovedarrayet: ' ) ;
til ( String val: mainArray )
{
System.out.print ( val + ' ' ) ;
}

// Tæl størrelse af hovedarrayet
int len ​​= mainArray.length;
// Erklær det andet array
Snor [ ] copiedArray = ny streng [ kun ] ;

// Henvis til det første array ved det andet array
copiedArray = mainArray;

// Skift den anden værdi af begge arrays
kopieretArray [ 1 ] = 'Blyant' ;

System.out.println ( ' \n \n Værdierne for hovedarrayet efter opdatering: ' ) ;
til ( String val: mainArray )
{
System.out.print ( val + ' ' ) ;
}
System.out.println ( ' \n \n Værdierne for det andet array efter opdatering: ' ) ;
til ( String val: copiedArray )
{
System.out.print ( val + ' ' ) ;
}
}
}


Produktion:



Følgende output viser, at det andet indeks for begge arrays indeholder den samme værdi efter opdateringen:







Eksempel 2: Brug af Clone()-metoden

Hvis du vil lave en klon af et array, der vil blive lagret forskellige steder i hukommelsen, skal du bruge en indbygget Java-metode. Clone() er en af ​​metoderne, der laver en kopi af et array, og hovedarrayet vil ikke blive påvirket af det kopierede array, hvis et indeks opdateres eller omvendt. Opret en Java-fil med følgende kode for at vise brugen af ​​metoden clone() til at klone en række strenge. Hovedarrayet og det kopierede array udskrives efter opdatering af det fjerde element i det kopierede array.

offentlig klasse CloneArray2
{
offentlig statisk tomrum hoved ( Snor [ ] args )
{
// Erklære hovedarrayet
Snor [ ] mainArray = { 'Bestil' , 'Pen' , 'regelmæssig' , 'Papir' } ;

// Tæl størrelse af hovedarrayet
int len ​​= mainArray.length;
// Deklarer det andet array
Snor [ ] copiedArray = ny streng [ kun ] ;

// Lav en kopi af det første array
copiedArray = mainArray.clone ( ) ;

// Skift den anden værdi af det andet array
kopieretArray [ 3 ] = 'Blyant' ;

System.out.println ( 'Værdierne for hovedarrayet efter opdatering: ' ) ;
til ( String val: mainArray )
{
System.out.print ( val + ' ' ) ;
}
System.out.println ( ' \n \n Værdierne for det andet array efter opdatering: ' ) ;
til ( String val: copiedArray )
{
System.out.print ( val + ' ' ) ;
}
}
}


Produktion:



Følgende output viser, at den fjerde indeksværdi for hovedarrayet ikke er ændret efter opdatering af det fjerde indeks for det kopierede array:

Eksempel 3: Brug af Arraycopy()-metoden

Metoden arraycopy() er en anden indbygget metode i Java til at lave en klon af en matrixvariabel. Denne metode har fire argumenter. Det første argument indeholder hovedarrayet. Det andet argument indeholder startindekset. Det tredje argument indeholder det kopierede array. Det fjerde argument indeholder længden af ​​arrayet. Opret en Java-fil med følgende kode, der viser anvendelserne af metoden arraycopy() til at lave en klon af et array:

offentlig klasse CloneArray3
{
offentlig statisk tomrum hoved ( Snor [ ] args )
{
// Erklære hovedarrayet
int [ ] mainArray = { 23 , 67 , Fire. Fem , 90 , 49 } ;

// Tæl størrelse af hovedarrayet
int len ​​= mainArray.length;
// Deklarer det andet array
int [ ] copiedArray = ny int [ kun ] ;

// Lav en kopi af det første array
System.arraycopy ( mainArray, 0 , kopieretArray, 0 , kun ) ;

// Skift sidst værdien af ​​det andet array
kopieretArray [ lige- 1 ] = 80 ;

System.out.println ( 'Værdierne for hovedarrayet efter opdatering: ' ) ;
til ( int val: mainArray )
{
System.out.print ( val + ' ' ) ;
}
System.out.println ( ' \n \n Værdierne for det andet array efter opdatering: ' ) ;
til ( int val: copiedArray )
{
System.out.print ( val + ' ' ) ;
}
}
}


Produktion:

Følgende output viser, at det sidste element i hovedarrayet ikke er ændret efter opdatering af det sidste indeks for det kopierede array:

Konklusion

Brugen af ​​metoderne clone() og arraycopy() til at lave en klon af et array i Java er vist i denne vejledning ved hjælp af flere eksempler.