Javascript Kopieren Array Von Objekten Ohne Referenz

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

Wenn Sie in Java mit Arrays arbeiten, m√∂chten Sie m√∂glicherweise eine Kopie eines Arrays erstellen. Wenn Sie beispielsweise ein Café betreiben und eine saisonale Speisekarte erstellen m√∂chten, k√∂nnen Sie eine Kopie Ihrer ursprunglichen Speisekarte erstellen, auf der die neue Speisekarte basieren kann.

In Java gibt es verschiedene Möglichkeiten, ein Array zu kopieren. In diesem Tutorial werden vier gängige Methoden zum Kopieren von Arrays untersucht und deren zeilenweise Funktionsweise erläutert. Nachdem Sie dieses Tutorial gelesen haben, sind Sie ein Meister im Kopieren von Arrays in Java.

Java-Arrays

In Java ist ein Array ein Container, der Werte enthält, die einen enthalten einziger Typ. Ein Array kann beispielsweise verwendet werden, um eine Liste von Buchern zu speichern oder eine Liste der Punkte, die Spieler in einem Dartspiel erzielt haben.

Arrays sind nutzlich, wenn Sie mit vielen ähnlichen arbeiten möchten Werte, weil Sie sie alle in einer Sammlung speichern können. Auf diese Weise können Sie Ihren Code komprimieren und gleichzeitig dieselben Methoden mit ähnlichen Werten ausfuhren.

Angenommen, wir möchten ein Array erstellen, das die in unserem Coffeeshop verkauften Kaffees speichert. Wir könnten dies mit diesem Code tun:

String[] coffees = {"Espresso‚", "Mocha‚", "Latte‚", "Cappuccino‚", "Pour Over", "Flat White‚"};

In diesem Beispiel deklarieren wir ein Array namens coffees, das String-Werte speichert. Unser Array enthält sechs Werte.

Jedem Element in einem Array wird eine bei 0 beginnende Indexnummer zugewiesen, die verwendet werden kann, um Elemente in einem Array einzeln zu referenzieren.

Jetzt haben wir es erforscht die Grundlagen von Java-Arrays, können wir Methoden besprechen, mit denen Sie den Inhalt Ihres Arrays kopieren können.

Array mit Zuweisungsoperator kopieren

Eine der gängigsten Klonmethoden Zum Kopieren eines Arrays wird der Zuweisungsoperator verwendet.

Der Zuweisungsoperator wird verwendet, um einem Array einen Wert zuzuweisen. Mit dem Zuweisungsoperator können wir den Inhalt eines vorhandenen Arrays einer neuen Variablen zuweisen, wodurch eine Kopie unseres vorhandenen Arrays erstellt wird.

Kehren wir zum Coffeeshop zuruck. Angenommen, wir möchten eine Kopie des Arrays coffees erstellen, auf der unser Sommerkaffeemenu basiert. Wir könnten diesen Code verwenden, um eine Kopie des Arrays zu erstellen:

Unser Code gibt zuruck:

Espresso, Mokka, Latte, Cappuccino, Pour Over, Flat White,

Lassen Sie uns unseren Code aufschlusseln. In der ersten Codezeile in unserer CopyAssignment-Klasse deklarieren wir ein Array namens coffees, das unser Standardkaffeemenu speichert.

In der n√§chsten Zeile verwenden wir die Zuweisung Operator, um den Wert von coffees einem neuen Array namens summer_coffees zuzuweisen. Dann erstellen wir ein "fur-jeden‚" Schleife, die jedes Element im Array summer_coffees durchl√§uft und auf der Konsole ausgibt.

Die Verwendung dieser Methode hat einen Nachteil: Wenn Sie Elemente von einem ändern Array, das andere Array wird ebenfalls geändert. Wenn wir also den Wert von Latte in Summer Latte in unserer summer_coffees-Liste geändert haben, wäre unsere coffees-Liste auch geändert.

Schleife zum Kopieren von Arrays

Der erste von uns besprochene Ansatz zum Kopieren eines Arrays – mit dem Zuweisungsoperator – erzeugt eine sogenannte flache Kopie. Dies ist der Fall, weil wir ein vorhandenes Array-Objekt einem neuen zugewiesen haben, was bedeutet, dass, wenn wir ein Objekt ändern, beide geändert werden – die beiden Objekte sind verknupft.

Allerdings mussen wir oft eine tiefe Kopie erstellen. Tiefe Kopien kopieren die Werte aus einem vorhandenen Objekt und erstellen ein neues Array-Objekt. Wenn Sie eine tiefe Kopie erstellen, können Sie Ihr neues Array ändern, ohne das ursprungliche zu beeinträchtigen.

Ein Ansatz, der zum Erstellen einer tiefen Kopie verwendet werden kann, besteht darin, einen fur-Schleife, die den Inhalt eines Arrays durchläuft und ein neues Array erstellt.

Angenommen, wir möchten eine tiefe Kopie unseres Kaffees-Arrays namens . erstellen summer_coffees. Dies muss eine tiefe Kopie sein, da wir planen, den Inhalt des Arrays summer_coffees zu ändern, um die neuen Kaffees widerzuspiegeln, die wir in den Sommermonaten anbieten werden.
< /p>

Hier ist der Code, den wir verwenden wurden, um eine tiefe Kopie mit einer for-Schleife zu erstellen:

Wenn wir unseren Code ausfuhren, sieht die Ausgabe wie folgt aus:

[Espresso, Mocha, Latte, Cappuccino, Pour Over, Flat White]

Wie Sie sehen, hat unser Code eine Kopie unseres ursprunglichen Arrays erstellt. Lassen Sie uns Schritt fur Schritt erklären, wie es funktioniert:

  1. Wir importieren java.util.Arrays, das die Methode toString() enthält, wir’ Am Ende des Beispiels wird unser Array an die Konsole ausgegeben.
  1. Wir deklarieren ein Array namens Kaffee, das die Liste der Kaffees auf . speichert unser Standardmenu.
  2. Wir initialisieren ein Array namens summer_coffees, das sechs Werte speichert.
  3. Wir verwenden eine for-Schleife, um jedes Element in der coffees list.
  4. Jedes Mal, wenn die for-Schleife ausgefuhrt wird, wird dem Element mit dem Indexwert i in summer_coffees das Element mit dem Indexwert . zugewiesen iin Kaffee.
  5. Wir verwenden Arrays.toString(), um summer_coffees in einen String umzuwandeln, und geben dann das neue Array mit unseren kopierten Elementen an die Konsole aus.

Verwenden von copyOfRange() Java-Methoden

Die Java-Methode copyOfRange() wird zum Kopieren von Arrays verwendet.copyOfRange() ist Teil der java.util.Arrays-Klasse Hier ist die Syntax fur die Methode copyOfRange():

Lassen Sie uns die Syntax fur die Methode copyOfRange() aufschlusseln:

  1. DataType ist der Typ von Daten, die das neue Array speichert.
  2. newArray ist der Name des neuen Arrays.
  3. oldArray ist das Array, dessen Werte Sie in das newArray kopieren möchten.
  4. indexPos ist die Position, an der der Kopiervorgang im oldArray beginnen soll .
  5. Länge ist die Anzahl der Werte, die von oldArray nach newArray kopiert werden sollen.
  6. Lassen Sie uns ein Beispiel durchgehen, um die Methode copyOfRange() in Aktion zu demonstrieren. Angenommen, wir möchten eine Kopie unseres coffees-Arrays von fruher erstellen. Wir könnten dies mit diesem Code tun:

    Unser Code gibt zuruck:

    Sommerkaffees: [Espresso, Mokka, Latte, Cappuccino, Pour Over, Flat White]

    Lassen Sie uns unseren Code aufschlusseln:

    1. Wir importieren die Bibliothek java.util.Arrays, die speichert die Methoden copyOfRange() und toString(), die wir in unserem Beispiel verwenden.
    2. Wir deklarieren ein Array namens Kaffee, das die Kaffees in unserem Standardmenu speichert.
    3. Wir deklarieren ein Array namens summer_coffees und verwenden die Methode copyOfRange(), um eine Kopie des Arrayskaffee zu erstellen. Die von uns angegebenen Parameter sind wie folgt:
      1. Kaffee ist der Name des Arrays, das wir kopieren möchten.
      2. gibt an, was wir wollen um Werte ab Indexposition 0 aus dem Array coffees zu kopieren.
      3. coffees.length gibt an, dass jeder Wert in der Liste kopiert werden soll.
    4. Wir drucken "Sommerkaffees: " gefolgt vom resultierenden Array namens summer_coffees an die Konsole.

    Jetzt haben wir eine Kopie unserer "coffees-Liste namens . erstellt summer_coffees.

    Java-Methoden von arraycopy() verwenden

    Die Methode arraycopy() wird verwendet, um Daten von einem Array in ein anderes Array zu kopieren. Die Methode arraycopy() ist Teil der System-Klasse und enthält eine Reihe von Optionen, mit denen Sie die von Ihnen erstellte Kopie eines vorhandenen Arrays anpassen können.

    Hier ist die Syntax von arraycopy( ) Methode:

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

    Lassen Sie uns zusammenbrechen diese Methode. copyarray() akzeptiert funf Parameter:

    Kehren wir zum Coffeeshop zuruck. Angenommen, wir möchten jeden Wert in unserem Array coffees in ein neues Array namens summer_coffees kopieren. Wir könnten dies mit diesem Code tun:

    Unser Code gibt Folgendes zuruck:

    Sommerkaffees: [Espresso, Mocha, Latte, Cappuccino, Pour Over, Flat White]

    Lassen Sie uns unseren Code Schritt fur Schritt aufschlusseln -step:

    1. Wir importieren das Paket java.util.Arrays zu Beginn unseres Programms. Dazu gehört auch die Methode toString(), die wir verwenden werden um die Array-Kopie zu drucken, die wir am Ende unseres Programms erstellen.
    2. Wir deklarieren ein Array namens Kaffee, das die Kaffees in unserem Standardmenu speichert.
    3. Wir initialisieren ein Array namens summer_coffees, das 6 Werte enthält.
    4. Wir verwenden arraycopy(), um eine Kopie unseres coffees-Arrays zu erstellen. Hier sind die Parameter, die wir angeben:
      1. Kaffee ist das Array, das wir kopieren möchten.
      2. ist die Position, an der unsere Kopie gespeichert werden soll Beginnen Sie im Array coffees.
      3. summer_coffees ist das Array, in dem unsere kopierten Werte hinzugefugt werden sollen.
      4. ist die Position, an der die kopierten Werte in summer_coffees . hinzugefugt werden sollen array.
      5. coffees.length ist die Anzahl der Array-Elemente, die wir kopieren möchten. In diesem Fall können wir mit coffees.length jedes Element aus der Liste coffees kopieren.
    5. Wir drucken eine Nachricht mit der Meldung "Sommerkaffees: ", gefolgt von der Liste der von uns erstellten Sommerkaffees.

    Schlussfolgerung

    Das Kopieren eines Arrays ist ein ublicher Vorgang, wenn Sie arbeiten mit Listen. In diesem Tutorial wurden vier Möglichkeiten untersucht, wie Sie ein Array in Java kopieren können.

    Zuerst haben wir besprochen, wie Sie mit dem Zuweisungsoperator eine flache Kopie erstellen, dann haben wir erklärt, wie Sie eine tiefe Kopie erstellen kopieren mit einer for-Schleife. Dann haben wir untersucht, wie man mit der Methode copyOfRange() eine Kopie eines Arrays erstellt und wie die Systemmethode arraycopy() verwendet wird, um ein Array zu kopieren.

    Jetzt sind Sie bereit, Fangen Sie an, Arrays in Java wie ein Profi zu kopieren!