JavaScript Skopiuj tablicę obiektów bez odniesienia

| | | | | | | | | | | | | | | | | | | | | |

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:

  1. Importujemy java.util.Arrays, która zawiera metodę toString(), użyjemy jej do wydrukowania naszej tablicy na konsola na końcu przykładu.
  1. Deklarujemy tablicę o nazwie kawiarnie, która przechowuje listę kaw w naszym standardowym menu.
  2. Inicjujemy tablicę o nazwie summer_coffees, która może przechowywać sześć wartości.
  3. Używamy pętli do iteracji przez każdy element na liście kawiarni.
  4. 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.
  5. Używamy Arrays.toString() do konwersji summer_coffees na ciąg, a następnie wyświetlamy nową tablicę z naszymi skopiowanymi elementami do konsoli.

Korzystanie z metod Java copyOfRange ()

Metoda Java copyOfRange () do kopiowania tablic .copyOfRange ( ) jest częścią klasy java.util.Arrays Oto składnia metody copyOfRange():

Zamierzamy przeanalizować składnię metody copyOfRange():

  1. Typ danych to typ danych, który nowy tablica jest przechowywana.
  2. nowa tablica to nazwa nowej tablicy.
  3. stara tablica to tablica, której wartości ‚Ęã „Chcesz skopiować do katalogu newArray.
  4. indexPos to miejsce, w którym operacja kopiowania powinna rozpocząć się w oldArray.
  5. długość to liczba wartości „Ęã”, które należy skopiować z oldArray newArray.
  6. < / ol>

    Weźmy przykład ilustrujący działanie metody copyOfRange(). Załóżmy, że chcemy zrobić kopię naszej tablicy kawiarni z wcześniejszej. Możemy to zrobić za pomocą tego kodu:

    Nasz kod zwraca:

    kawy letnie: [Espresso, Moka, Latte, Cappuccino, Pour over, flat white]

    rozkładamy nasz kod:

    1. Importujemy bibliotekę java.util.Arrays, która przechowuje metody copyOfRange() i toString(), które użyjemy w naszym przykładzie.
    2. Deklarujemy tablicę o nazwie kawiarnie, która przechowuje kawy w naszym standardowym menu.
    3. Deklarujemy tablicę o nazwie summer_coffees i użyj metody copyOfRange(), aby utworzyć kopię tablicy kawiarni. Parametry, które określamy są następujące:
      1. kawiarnie to nazwa tabeli, którą chcemy skopiować
      2. oznacza, że my. chcesz skopiować wartości zaczynając od pozycji indeksu 0 stolik kawowy .
      3. coffees.length wskazuje, że chcemy skopiować każdą wartość do ten. lista
      4. Drukujemy "kawy letnie:" . po której następuje tablica wynikowa o nazwie summer_coffees w konsoli

      Teraz utworzyliśmy kopię naszej listy kawiarnia o nazwie summer_coffees .

      Korzystanie z metod Java Arraycopy ()

      Metoda arraycopy () służy do kopiowania danych z jednej sieci do innej. Metoda arraycopy () jest częścią klasy systemowej i zawiera zestaw opcji, które umożliwiają dostosowanie tworzonej kopii istniejącej tablicy.

      Oto składnia metody arraycopy ():< br>

      System.arraycopy (sourceArray, StartingPos, newArray, newArrayStartingPos, length);

      Podział tej metody Let down. copyarray () przyjmuje pięć parametrów:

      • sourceArray to nazwa tablicy, którą chcesz skopiować
      • pozycja startowa. to lokalizacja indeksu, z którego chcesz rozpocząć kopiowanie wartości „Ęã”Ęã do tablicy_źródłowej.
      • newArray to nazwa nowej tablicy, w której zostaną skopiowane wartości „Ęã”.
      • newArrayStartingPos to pozycja indeksu, do której skopiowane wartości „Ęã” mają zostać dodane.
      • długość to liczba elementów, które chcesz skopiować do katalogu new_array.

      Powrót do kawiarni. Załóżmy, że chcemy skopiować każdą wartość z naszej tablicy kawiarnie do nowej tablicy o nazwie summer_coffees. Możemy to zrobić za pomocą tego kodu:

      Nasz kod zwraca:

lato kawy: [espresso, mokka, latte, cappuccino, Pour over, flat white]

rozłóż nasz kod krok po kroku -Krok:

  1. importujemy pakiet java.util.Arrays na początku naszego programu, w tym metodę toString(), której użyjemy do wydrukowania kopii tablicy, którą stworzymy na końcu naszego programu.
  2. Deklarujemy tablicę o nazwie kawy, która przechowuje kawy w naszym standardowym menu.
  3. Inicjujemy tablicę o nazwie summer_coffees który będzie zawierał 6 wartości.
  4. Używamy arraycopy (), aby utworzyć kopię naszej tablicy kawiarni. Oto parametry, które określamy.
    1. kawiarnie to tablica, którą chcemy skopiować
    2. to pozycja, w której chcemy, aby nasza kopia zaczynała się w cafes tablica.
    3. summer_coffees to tablica, do której chcemy, aby skopiowane wartości były dołączone.
    4. to miejsce, w którym chcemy, aby skopiowane wartości zaczęły być dodawane do tablicy summer_coffees.
    5. coffees.length to numer tablicy elementy, które chcemy skopiować. W tym przypadku użycie coffees.length pozwala nam skopiować każdy element z listy kawiarnie.
  5. Drukujemy komunikat o treści " letnie kawy:"., a następnie lista letnich kaw, które stworzyliśmy
  6. Wniosek

    Kopiowanie tablicy jest częstą operacją podczas pracy z listy. W tym samouczku zbadaliśmy cztery sposoby kopiowania tablicy w Javie.

    Najpierw omówiliśmy, jak utworzyć płytką głębokość kopii za pomocą operatora przypisania, więc przystąpiliśmy do wyjaśniania, jak wykonać pełną kopię za pomocą pętla. Zbadaliśmy więc, jak użyć metody copyOfRange () do utworzenia kopii tablicy i jak metoda systemowa arraycopy () jest używana do kopiowania tablicy.

    Jesteś teraz gotowy do rozpoczęcia kopiowania tablic w Javie jako jeden!pro