JavaScript Skopiuj tablicę obiektów bez odniesienia
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
Podczas pracy z tablicami w Javie możesz zdecydować się na wykonanie kopii tablicy. Na przykład, jeśli prowadzisz kawiarnię i chcesz utworzyć menu sezonowe , możesz utworzyć kopię oryginalnego menu, na którym będzie oparte nowe menu.
W Javie istnieje kilka sposobów kopiowania tablica. W tym samouczku omówimy cztery popularne metody kopiowania tabel i omówimy sposób ich działania wiersz po wierszu. Po przeczytaniu tego samouczka staniesz się mistrzem w kopiowaniu tabel w Javie.
Tablice w Javie
W Javie tablica jest kontenerem, który przechowuje wartości rodzaj. Na przykład tabela może służyć do przechowywania listy książek lub listy wyników, które gracze zdobyli w grze w rzutki.
Tablice są przydatne, gdy chcesz pracować z wieloma wartościami „Ęã”, Ęãponieważ można je przechowywać w kolekcji. Pozwala to skondensować kod i jednocześnie uruchamiać te same metody na tych samych wartościach.
Słowo Let, chcemy utworzyć tablicę, która przechowuje kawy sprzedawane w naszej kawiarni. Możemy to zrobić za pomocą tego kodu:
String [] = coffees {"Espresso", "Mocha", "Latte", "cappuccino", "Versare Over", "Flat white" } ;
W tym przykładzie deklarujemy tablicę o nazwie kawiarnie
, która przechowuje wartości ciągów . Nasza tablica zawiera sześć wartości.
Każdemu elementowi tablicy przypisany jest numer indeksu, zaczynając od 0, który może być używany do odwoływania się do poszczególnych elementów tablicy.
Teraz, gdy poznaliśmy podstawy tablic Java, możemy omówić metody, których można użyć do skopiowania zawartości tabeli.
Skopiuj tablicę za pomocą operatora przypisania
Jedną z najczęściej używanych metod klonowania do kopiowania tablicy jest użycie operatora przypisania.
Operator przypisania służy do przypisania wartości do tablicy. Używając operatora przypisania, możemy przypisać zawartość istniejącej tablicy do nowej zmiennej, która utworzy kopię naszej istniejącej tablicy.
Wróćmy do coffeeshopu. Powiedzmy, że chcemy utworzyć kopię kawiarni
tablica, na której będziemy opierać nasze menu z letnią kawą. Możemy użyć tego kodu do utworzenia kopii tablicy:
Nasz kod zwraca:
Espresso, Moka, Latte, Cappuccino, Pour over, flat white,
Przerwij od zstąpienia naszego kodu. W pierwszym wierszu kodu w naszej klasie CopyAssignment deklarujemy tablicę o nazwie kawiarnie
, która przechowuje nasze standardowe menu kawiarni.
W następnym wierszu używamy operatora przypisania do przypisania wartość kawiarni
do nowej tablicy o nazwie summer_coffees
. Następnie tworzymy pętlę "for-each", która przekazuje każdy element tablicy summer_coffees
i drukuje do konsoli.
Istnieje wada używania tej metody: jeśli zmienisz elementy jednej tablicy, druga również zostanie zmieniona, więc jeśli zmienimy wartość Latte
Summer Latte
na naszej liście summer_coffee
, nasza lista kawa
również zostałaby zmieniona
pętla do kopiowania tablic
pierwsze omówione przez nas podejście do kopiowania tablicy - za pomocą operatora przypisania - tworzy coś, co nazywa się płytką kopii.
Dzieje się tak, ponieważ przypisaliśmy istniejący obiekt tablicy do nowego, co oznacza, że gdy zmienimy dowolny obiekt, oba zostaną zmienione - .dwa obiekty są ze sobą powiązane
Jednak często musimy utworzyć głęboką kopię . Głębokie kopie kopiują wartości istniejącego obiektu i tworzą nowy obiekt tablicy. Podczas tworzenia pełnej kopii można edytować nowy stół bez wpływu na oryginał.
Jednym z podejść, które można zastosować do utworzenia pełnej kopii, jest utworzenie pętli
przez zawartość tablicy i utworzenie nowej tablicy.
Załóżmy, że chcesz utworzyć pełną kopię naszej tabeli kawiarni
o nazwie summer_coffees.
Powinna to być dokładna kopia, ponieważ zamierzamy zmodyfikować zawartość summer_coffees
tabela odzwierciedlająca nowe kawy, które będziemy oferować w miesiącach letnich.
Oto kod, którego użyjemy do utworzenia głębokiej kopii za pomocą pętli
:
Gdy uruchamiamy nasz kod, wynik wygląda następująco:
[Espresso, Mocha, Latte, Cappuccino, Pour over, Flat White]
Jak widać, nasz kod utworzył kopię naszej oryginalnej tablicy. Wyjaśniamy krok po kroku jak to działa:
- Importujemy
java.util.Arrays
, która zawiera metodę toString(), użyjemy jej do wydrukowania naszej tablicy na konsola na końcu przykładu.
- Deklarujemy tablicę o nazwie
kawiarnie
, która przechowuje listę kaw w naszym standardowym menu. - Inicjujemy tablicę o nazwie
summer_coffees
, która może przechowywać sześć wartości. - Używamy pętli do iteracji przez każdy element na liście
kawiarni. - Za każdym razem, gdy pętla jest wykonywana, elementowi o wartości indeksu
i
w summer_coffees zostanie przypisany element o wartości indeksu kodu <> i w kawiarniach. - Używamy Arrays.toString() do konwersji
summer_coffees
na ciąg, a następnie wyświetlamy nową tablicę z naszymi skopiowanymi elementami do konsoli.
Metoda Java copyOfRange () do kopiowania tablic .copyOfRange ( ) jest częścią klasy java.util.Arrays Oto składnia metody copyOfRange():