Jak klonovat pole v Javě

Jak Klonovat Pole V Jave



Obsah pole je nutné zkopírovat do jiného pole, pokud obsah hlavního pole musí zůstat nezměněn. Tento typ úlohy se nazývá klon pole. Pole lze klonovat v Javě bez použití jakékoli vestavěné funkce nebo použití konkrétní vestavěné funkce. Java má mnoho vestavěných funkcí pro klonování pole. V tomto tutoriálu jsou uvedeny různé způsoby klonování pole v Javě.

Příklad 1: Kopírování pole pomocí operátoru přiřazení (=).

V Javě, když je proměnná pole přiřazena k jiné proměnné pole, obě proměnné pole budou odkazovat na stejné umístění paměti. Pokud se tedy aktualizuje hodnota libovolného indexu jednoho pole, změní se hodnota stejného indexu jiného pole. Vytvořte soubor Java s následujícím kódem, abyste věděli, jak pole funguje, když je přiřazeno k jiné proměnné pole. Hodnota druhého indexu druhého pole se v kódu aktualizuje po přiřazení prvního pole druhému poli.







veřejná třída CloneArray1
{
public static void main ( Tětiva [ ] argumenty )
{

// Deklarujte hlavní pole
Tětiva [ ] mainArray = { 'Rezervovat' , 'Pero' , 'Velký' , 'Papír' } ;

System.out.println ( 'Hodnoty hlavního pole: ' ) ;
pro ( Řetězec val: mainArray )
{
System.out.print ( val + '' ) ;
}

// Počítejte velikost hlavního pole
int len ​​= mainArray.length;
// Deklarujte druhé pole
Tětiva [ ] copyedArray = nový řetězec [ jen ] ;

// Odkazujte na první pole druhým polem
copiedArray = mainArray;

// Změňte druhou hodnotu obou polí
copiedArray [ 1 ] = 'Tužka' ;

System.out.println ( ' \n \n Hodnoty hlavního pole po aktualizaci: ' ) ;
pro ( Řetězec val: mainArray )
{
System.out.print ( val + '' ) ;
}
System.out.println ( ' \n \n Hodnoty druhého pole po aktualizaci: ' ) ;
pro ( Řetězec val: copyedArray )
{
System.out.print ( val + '' ) ;
}
}
}


Výstup:



Následující výstup ukazuje, že druhý index obou polí obsahuje po aktualizaci stejnou hodnotu:







Příklad 2: Použití metody Clone().

Pokud chcete vytvořit klon pole, které bude uloženo na různých místech paměti, musíte použít vestavěnou metodu Java. Clone() je jednou z metod, které vytvoří kopii pole a hlavní pole nebude ovlivněno zkopírovaným polem, pokud bude aktualizován jakýkoli index nebo naopak. Vytvořte soubor Java s následujícím kódem, který ukazuje použití metody clone() ke klonování pole řetězců. Hlavní pole a zkopírované pole se vytisknou po aktualizaci čtvrtého prvku zkopírovaného pole.

veřejná třída CloneArray2
{
public static void main ( Tětiva [ ] argumenty )
{
// Deklarujte hlavní pole
Tětiva [ ] mainArray = { 'Rezervovat' , 'Pero' , 'Velký' , 'Papír' } ;

// Počítejte velikost hlavního pole
int len ​​= mainArray.length;
// Deklarujte druhé pole
Tětiva [ ] copyedArray = nový řetězec [ jen ] ;

// Vytvořte kopii prvního pole
copiedArray = mainArray.clone ( ) ;

// Změňte druhou hodnotu druhého pole
copiedArray [ 3 ] = 'Tužka' ;

System.out.println ( 'Hodnoty hlavního pole po aktualizaci: ' ) ;
pro ( Řetězec val: mainArray )
{
System.out.print ( val + '' ) ;
}
System.out.println ( ' \n \n Hodnoty druhého pole po aktualizaci: ' ) ;
pro ( Řetězec val: copyedArray )
{
System.out.print ( val + '' ) ;
}
}
}


Výstup:



Následující výstup ukazuje, že hodnota čtvrtého indexu hlavního pole se po aktualizaci čtvrtého indexu zkopírovaného pole nezměnila:

Příklad 3: Použití metody Arraycopy().

Metoda arraycopy() je další vestavěná metoda Java pro vytvoření klonu proměnné pole. Tato metoda má čtyři argumenty. První argument obsahuje hlavní pole. Druhý argument obsahuje počáteční index. Třetí argument obsahuje zkopírované pole. Čtvrtý argument obsahuje délku pole. Vytvořte soubor Java s následujícím kódem, který ukazuje použití metody arraycopy() k vytvoření klonu pole:

veřejná třída CloneArray3
{
public static void main ( Tětiva [ ] argumenty )
{
// Deklarujte hlavní pole
int [ ] mainArray = { 23 , 67 , Čtyři pět , 90 , 49 } ;

// Počítejte velikost hlavního pole
int len ​​= mainArray.length;
// Deklarujte druhé pole
int [ ] copiedArray = new int [ jen ] ;

// Vytvořte kopii prvního pole
System.arraycopy ( hlavní pole, 0 , copyedArray, 0 , jen ) ;

// Změň poslední hodnotu druhého pole
copiedArray [ jen- 1 ] = 80 ;

System.out.println ( 'Hodnoty hlavního pole po aktualizaci: ' ) ;
pro ( int val: mainArray )
{
System.out.print ( val + '' ) ;
}
System.out.println ( ' \n \n Hodnoty druhého pole po aktualizaci: ' ) ;
pro ( int val: copyedArray )
{
System.out.print ( val + '' ) ;
}
}
}


Výstup:

Následující výstup ukazuje, že poslední prvek hlavního pole se po aktualizaci posledního indexu zkopírovaného pole nezměnil:

Závěr

Použití metod clone() a arraycopy() k vytvoření klonu pole v Javě je ukázáno v tomto tutoriálu na několika příkladech.