Javascript Kopieer array van objecten zonder referentie
array Python module |
Arrays |
ast Python module |
code Python module |
COM PHP module |
copy Python module |
dis Python module |
Ev PHP module |
exp |
imp Python module |
io Python module |
JavaScript |
Mocha JavaScript library |
Network PHP module |
operator Python module |
os Python module |
Python functions |
Rar PHP module |
re Python module |
StackOverflow |
string Python module |
sys Python module |
Yar PHP module
Michael Zippo
Als u met arrays in Java werkt, kunt u besluiten een kopie van een array te maken. Als u bijvoorbeeld een café runt en een seizoensmenu wilt maken, kunt u een kopie van het originele menu maken waarop u het nieuwe menu kunt baseren.
In Java zijn er verschillende manieren waarop u kunt kopiëren een array. In deze zelfstudie worden vier veelgebruikte methoden voor het kopiëren van tabellen onderzocht en wordt rij voor rij besproken hoe ze werken. Na het lezen van deze tutorial, ben je een meester in het kopiëren van tabellen in Java.
Java-arrays
In Java is een array een container die waarden bevat ​​die een enkele bevatten type. Een tabel kan bijvoorbeeld worden gebruikt om een lijst met boeken op te slaan of een lijst met scores die spelers hebben verdiend in een spelletje darts.
Arrays zijn handig als u met veel waarden wilt werken ‚Äã‚ Äãomdat je ze in een verzameling kunt bewaren. Dit stelt je in staat om je code te condenseren en tegelijkertijd dezelfde methoden op dezelfde waarden uit te voeren.
Het woord Laten we een array willen maken waarin de koffie wordt opgeslagen die in onze coffeeshop wordt verkocht. We zouden het met deze code kunnen doen:
String [] = coffees {"Espresso", "Mocha", "Latte", "cappuccino", "Versare Over", "Flat white" } ;
In dit voorbeeld declareren we een array met de naam cafés
waarin tekenreekswaarden worden opgeslagen. Onze array bevat zes waarden.
Aan elk element van een array wordt een indexnummer toegewezen, beginnend met 0, dat kan worden gebruikt om naar afzonderlijke elementen in een array te verwijzen.
Nu we de basisprincipes van Java-arrays hebben onderzocht, kunnen we de methoden bespreken die u kunt gebruiken om de inhoud van uw tabel te kopiëren.
Kopieer de array met behulp van de toewijzingsoperator
Een van de meest gebruikte kloonmethoden voor het kopiëren van een array is het gebruik van de toewijzingsoperator.
De toewijzingsoperator wordt gebruikt om een waarde aan een array toe te kennen. Met de toewijzingsoperator kunnen we toewijzen de inhoud van een bestaande array naar een nieuwe variabele, die een kopie van onze bestaande array maakt.
Laten we teruggaan naar de coffeeshop. Laten we zeggen dat we een kopie willen maken van de cafés
array waarop we ons zomerkoffiemenu zullen baseren. We kunnen deze code gebruiken om een kopie van de array te maken:
Onze code retourneert:
Espresso, Moka, Latte, Cappuccino, Giet erover, plat wit,
Break from Onze code afgedaald. Op de eerste regel code in onze CopyAssignment-klasse declareren we een array met de naam cafés
die ons standaard cafémenu opslaat.
Op de volgende regel gebruiken we de toewijzingsoperator om toe te wijzen de waarde van cafes
naar een nieuwe array genaamd summer_coffees
. Vervolgens maken we een "for-each"-lus die elk summer_coffees
array-element doorgeeft en naar de console afdrukt.
Er is een nadeel aan het gebruik van deze methode: als u verandert de elementen van de ene array, wordt de andere array ook gewijzigd. Dus als we de waarde van Latte
Summer Latte
in onze summer_coffee
-lijst hebben gewijzigd, onze koffie
lijst zou ook worden gewijzigd
loop om arrays te kopiëren
de eerste benadering die we hebben besproken om een array te kopiëren -. met behulp van de toewijzingsoperator - creëert wat een kopie ondiep wordt genoemd.
Dit is het geval omdat we een bestaand array-object hebben toegewezen aan een nieuw object, wat betekent dat wanneer we een object wijzigen, ze allebei worden gewijzigd - de twee objecten zijn gerelateerd
We moeten echter vaak een diepe kopie maken. Diepe kopieën kopiëren de waarden ‚Äã‚Äãvan een bestaand object en maken een nieuw array-object. Wanneer u een volledige kopie maakt, kunt u uw nieuwe tabel zonder het origineel te beïnvloeden.
Een benadering die kan worden gebruikt om een volledige kopie te maken, is door een
-lus te maken door de inhoud van een array en een nieuwe array te maken.
Stel dat we wil een volledige kopie maken van onze cafés-tabel
genaamd summer_coffees.
Dit moet een grondige kopie zijn, aangezien we van plan zijn de inhoud van de summer_coffees
te wijzigen tabel om de nieuwe koffies weer te geven die we in de zomermaanden zullen aanbieden.
Hier is de code die we zouden gebruiken om een diepe kopie te maken met behulp van een
-lus:
Als we onze code uitvoeren, is de uitvoer als volgt:
[Espresso, Mokka, Latte, Cappuccino, Pour over, Flat White]
Zoals je kunt zien, heeft onze code een kopie gemaakt van onze originele array. We leggen stap voor stap uit hoe het werkt:
- We importeren
java.util.Arrays
inclusief toString () methode, we zullen het gebruiken om onze array af te drukken op de console aan het einde van het voorbeeld.
- We declareren een array met de naam
cafes
die de koffielijst opslaat in ons standaardmenu. - We initialiseren een array met de naam
summer_coffees
die zes waarden kan opslaan. - We gebruiken een lus om elk item in de café
-lijst te doorlopen. - Telkens wanneer de lus wordt uitgevoerd, krijgt het element met de waarde van index
i
in summer_coffees het element met de code-indexwaarde <> i in cafés toegewezen. - We gebruiken Arrays.toString () om
summer_coffees
naar een string te converteren, en print vervolgens de nieuwe array met onze gekopieerde items naar de console.
De Java copyOfRange () methode om Arrays .copyOfRange ( te kopiëren) ) maakt deel uit van de klasse java.util.Arrays. Hier is de syntaxis voor de methode copyOfRange () :