Java - kopírování polí

Obsah
Jakmile zvládnete pojmy pole a jak ji vyplnit a jak ji projít, budeme také určitě potřebovat vygenerovat kopie polí, protože mnohokrát budeme muset zpracovat obsah uvedeného pole beze změny originálu, který použijeme pro jiné účely.
Ačkoli kopírování může znít jako velmi jednoduchá aktivita, ve skutečnosti je o něco složitější než přiřazování hodnota pole na jinou deklarovanou proměnnou tohoto typu.
Kopírování polí
Jako součást logiky našich programů budeme pravděpodobně v určitém okamžiku potřebovat zkopírujte pole do jiné proměnnéAby bylo možné pracovat s prvky v jiné instanci programu, jak jsme zmínili na začátku, přiřazení proměnné, která obsahuje pole jinému, není vhodné řešení.
Předpokládejme, že úkol děláme následovně:
varArrar2 = varArray1;

V tomto případě neexistuje syntaktická chyba, takže instrukce funguje bez problémů, i když se pokusíme o smyčku varArray2 získáme hodnoty, o kterých víme, že je máme varArray1„Zajímalo by vás, kde je potom problém, problém je v tom, co jste v tomto pokynu udělali Jáva bylo zkopírovat odkaz na obsah prvního pole, takže pokud provedeme změnu v jednom z těchto dvou, změnu uvidí oba.
Jak vidíme, toto není příliš účinná metoda, pokud nechceme účinně kopírovat odkaz.
Správný způsob kopírování poleExistuje několik způsobů, jak provést kopie pole, pomocí smyčky, která prochází prvním polem a přiřazení hodnot druhému, pomocí metoda statické maticové kopie co je obsaženo ve třídě Systém a nakonec pomocí klonová metodaTen druhý je však o něco pokročilejší než to, co zde vidíme.
Použití smyčky
Toto je nejjednodušší metoda ze všech, i když je to trochu pracné, plní cíl správně a umožňuje nám získat nové pole, které by bylo kopií originálu a bylo na něm zcela nezávislé, abychom vytvořili tuto kopii proveďte následující:
 int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = new int [varArray1.length]; for (int i = 0; i <varArray1.length; i ++) {varArray2 [i] = varArray1 [i]; } 

Jak vidíme, je to něco velmi jednoduchého, máme své první pole s řadou hodnot již přiřazených v jejím obsahu vytvoříme a druhé pole a uvedeme, že jeho rozměr bude délka původního pole a nakonec s a pro smyčku našemu novému poli přiřazujeme hodnotu, která odpovídá poloze cyklu prvního pole.
Pomocí metody arraycopy
Jednodušší způsob, který používá o něco méně kódu, je statická metoda maticová kopie, tato metoda porušuje konvenci pojmenování Jáva bez ohledu na to, že funguje správně, musíme použít následující:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, délka);

Jak vidíme na jednom řádku, řešíme problém, metoda ve svém prvním argumentu obdrží pole, které se chystáme zkopírovat, poté přijme počáteční pozici, odkud budeme kopírovat, pak cílové pole kopie , jeho počáteční poloha a nakonec délka kopie:

Nakonec jsme viděli, že kopírování pole, i když to není tak jednoduché jako přiřazení proměnných, je relativně snadný úkol pomocí metod popsaných v tomto tutoriálu.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave