[Java] Flache Kopie und tiefe Kopie beim Konvertieren eines Arrays in eine Liste

Es gibt zwei Möglichkeiten, ein List-Objekt aus einem vorhandenen Array zu erstellen.

  1. Verwenden Sie `Arrays.asList `
  2. Verwenden Sie den Konstruktor einer List-Implementierungsklasse wie "ArrayList"

Arrays.asList(Array)Wenn Sie verwenden, handelt es sich um eine flache Kopie, und Sie übergeben nur die Referenz.


```arraylist```Wenn Sie den Konstruktor der Listenimplementierungsklasse verwenden, z. B., handelt es sich um ein neues Duplikat.


### Arrays.asList
 Übergeben Sie einfach eine Referenz als flache Kopie.

```java
        // Arrays.asList()Übergeben Sie einfach eine Referenz
        String[] ary = {"a", "b", "c"};
        List<String> list = Arrays.asList(ary);
        //  list.add("d"); // => java.lang.UnsupportedOperationException
        list.set(0, "e");
        System.out.println(Arrays.toString(ary)); //=> [e, b, c]Die ursprüngliche Anordnung hat sich ebenfalls geändert.
        System.out.println(list);                 //=> [e, b, c]

Es ist möglich, das Element mit set zu ändern. Seien Sie jedoch vorsichtig, da ein Fehler auftritt, wenn Sie die Struktur eines vorhandenen Arrays wie add ändern.

Konstruktor der Implementierungsklasse auflisten

Es wird ein neues Duplikat sein.


        //Erstellen Sie eine neue, indem Sie sie mit einer Implementierungsklasse von List wie ArrayList instanziieren
        String[] ary2 = {"a", "b", "c"};
        List<String> list2 = new ArrayList<>(Arrays.asList(ary2));
        list2.add("d");
        list2.set(0, "e");
        System.out.println(Arrays.toString(ary2)); //=> [a, b, c]Die ursprüngliche Anordnung bleibt unverändert.
        System.out.println(list2);                 //=> [e, b, c, d]

Da keine neue ArrayList <> erstellt werden kann, muss sie einmal in ein List-Objekt konvertiert werden.

Recommended Posts

[Java] Flache Kopie und tiefe Kopie beim Konvertieren eines Arrays in eine Liste
[Java] Vorsichtsmaßnahmen beim Konvertieren von Argumentparametern variabler Länge in ein Array
[Java] Deklarieren und initialisieren Sie ein Array
[Java] Konvertierung von Array zu Liste
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
[Java] Tipps und Fehlerprobleme beim Konvertieren von Double zu Big Decimal
[Java] Von zwei Listen zu einer Array-Liste
Zusammenfassung der guten Punkte und Vorsichtsmaßnahmen bei der Konvertierung der Java Android-Anwendung in Kotlin
[Java] Beispiel eines Programms, das die Maximal- und Minimalwerte von einem Array abruft
Zusammenfassung beim Versuch, Solr in Java zu verwenden und eine Fehlermeldung zu erhalten (Solr 6.x)
Bei Verwendung einer Liste in Java wird java.awt.List ausgegeben und ein Fehler tritt auf
Informationen zur Java-Array-Liste
Beim Zuweisen zu einem Array wird ein Nullwert eingegeben
Ich möchte eine Liste mit Kotlin und Java erstellen!
ClassCastException tritt bei der Migration von Java7 auf Java8 auf. ~ Generics and overload ~
Für Java-Anfänger: Liste, Karte, Iterator / Array ... Wie konvertiere ich?
[Java] Konvertierung von Listentyp / Array-Typ
[Java] Konvertiert ArrayList in Array
So initialisieren Sie ein Java-Array
Deep Copy Collection in Java
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
Hinweis Nr. 1 "Zählen und Anzeigen doppelter Werte in einem Array" [Java]
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
Sortieren einer Liste mit einem Array vom Typ int als Element (Java) (Comparator)
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
[Achtung !!] Vorsichtsmaßnahmen beim Konvertieren von Rails-Geräten und Anzeigen von Dateien in haml
Effektives Java-Element 25 Wählen Sie eine Liste aus einem Array aus. Erste Hälfte
Es wurde ein Fehler behoben, der beim Versuch auftrat, Spark in einer Umgebung zu verwenden, in der Java 8 und Java 11 gleichzeitig vorhanden sind
Java-Lernnotiz (Erstellen eines Arrays)
[Java] Konvertiere 1 in N Liste in Karte
[Java] Unterschied zwischen Array und ArrayList
[Java] Verwendung von List [ArrayList]
Überraschend tiefe Java-Liste Inversion-Stream-Verarbeitung
So erstellen Sie ein Java-Array
Java-Array / Liste / Stream gegenseitige Konvertierungsliste
[Java] Konvertieren Sie ein Array in ArrayList * Achtung
Aktualisieren Sie JAVA auf die neueste Version auf 1.8.0_144 (beim Herunterladen aus dem Internet und Aktualisieren)
[Java] So drehen Sie ein zweidimensionales Array mit einer erweiterten for-Anweisung
[Java small story] Überwachen Sie, wann der Liste ein Wert hinzugefügt wird
[Einführung in Java] Informationen zu Array-Operationen (1D-Array, 2D-Array-Deklaration, Instanziierung, Initialisierung und Verwendung)
Ich möchte für jedes Array mit Lambda-Ausdruck in Java
So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]