Erstellen Sie Arraylist von Array - Stapelüberlauf

Die einfachste Antwort ist zu tun:

Dies funktioniert gut. Aber einige Einschränkungen:

Wenn die Frage nach „ein Objekt der Klasse Arraylist“, fragt ich denke, dass es vernünftig ist, um die Klasse zu übernehmen es java.util.ArrayList, ist verweist. Arrays.asList gibt tatsächlich eine java.util.Arrays.ArrayList, die keine Instanceof der anderen Klasse ist. So ein dritte Nachteil ist, dass, wenn Sie versuchen, es in einem Kontext zu verwenden, erfordern die oben werden es nicht funktionieren. - Dave L. 24. Juni '16 um 19:16 Uhr

(Alten Thread, aber nur 2 Cent wie keine Erwähnung Guava oder andere Libs und einige weitere Details)

Es lohnt sich, die Guava Weg wies darauf hin, das diese Spielereien stark vereinfacht:

Für eine unveränderliche Liste

Verwenden Sie die ImmutableList Klasse und ihre von () und copyOf () Factory-Methoden (Elemente kann nicht null sein):

Für ein veränderliches Liste

Verwenden Sie die Listen-Klasse und ihre newArrayList () Factory-Methoden:

Bitte beachten Sie auch die ähnlichen Methoden für andere Datenstrukturen in anderen Klassen, zum Beispiel in Sets.

Die Hauptattraktion könnte sein, die Unordnung zu reduzieren aufgrund Generika für Typsicherheit, da die Verwendung der Guava Factory-Methoden ermöglichen die Typen die meiste Zeit geschlossen werden. Allerdings hält dieses Argument weniger Wasser, da Java 7 mit dem neuen Diamant-Operator angekommen.

Aber es ist nicht der einzige Grund (und Java 7 ist noch nicht überall): Die Kurzschrift-Syntax auch sehr praktisch ist, und die Methoden initializers, wie oben zu sehen ist, ermöglicht ausdruck Code zu schreiben. Sie tun in einem Guava Anruf was 2 mit der aktuellen Java Collections nimmt.

Für eine unveränderliche Liste

Beachten Sie, dass der zurückgegebene Typ für asList () ist eine Liste eine konkrete Implementierung Arraylist verwenden, aber es ist nicht java.util.ArrayList. Es ist eine innere Art, die eine Arraylist emuliert, sondern tatsächlich verweist direkt auf die übergebene Array und macht es „write through“ (Änderungen in der Anordnung reflektiert werden).

Es verbietet Modifikationen durch einige der Methoden, die Liste API weise einfach eine AbstractList erstreckt (so, Hinzufügen oder Entfernen von Elementen wird nicht unterstützt), aber es Anrufe () außer Kraft zu setzen Elemente festlegen können. Somit ist diese Liste nicht wirklich unveränderlich und ein Aufruf an asList () soll mit Collections.unmodifiableList () gewickelt werden.

Siehe den nächsten Schritt, wenn Sie eine veränderbare Liste benötigen.

Für eine Veränderliche Liste

Wie oben, aber mit einer tatsächlichen java.util.ArrayList gewickelt:

Um ein Array zu einem Arraylist zu umwandeln, tun Entwickler oft dies:

Arrays.asList () eine Arraylist zurück, die eine private statische Klasse in Arrays ist. es ist nicht die java.util.ArrayList Klasse. Die java.util.Arrays.ArrayList Klasse gesetzt (), get (), () enthält Methoden, hat aber keine Methoden für das Hinzufügen von Elementen, so dass seine Größe festgelegt ist. Um einen echten Arraylist zu erstellen, müssen Sie Folgendes tun:

Der Konstruktor von Arraylist kann eine Sammlungstyp akzeptieren. Das ist auch ein super Typ für java.util.Arrays.ArrayList

um 7:20 beantwortet 25 '14 Juni

Wenn wir die Definition von Arrays.asList () -Methode sehen Sie so etwas wie dieses:

So könnten Sie Arraylist wie folgt initialisieren:

Hinweis. jedes neue Element (int args) werden als Einzelobjekt behandelt werden und kann als var-args übergeben werden.

So ist dieser Code auch nützlich, dies zu tun

Da Java 8 ist einfache Art und Weise zu transformieren:

Eine weitere einfache Möglichkeit ist es, alle Elemente aus dem Array zu einem neuen Arraylist unter Verwendung eine für-jede Schleife hinzuzufügen.

In Java-9 können Sie verwenden

und die gemeinsame neueste Weise Array zu erstellen ist observableArrays

so ist die Antwort

dh nach Oracle Dokumente

observableArrayList () Erstellt eine neue leere beobachtbaren Liste, die von einem Arraylist unterstützt wird. observableArrayList (E. Artikel) Erzeugt eine neue Liste mit beobachtbaren Array Elemente hinzugefügt.

Auch wenn es viele perfekt schriftlichen Antworten auf diese Frage sind, werde ich meine Eingaben hinzufügen.

New Arraylist kann auf folgende Weise erstellt werden

Und sie sehr gut unterstützen alle Operationen von Arraylist

Aber die folgenden Vorgänge gibt nur eine Listenansicht eines Arraylist und nicht unbedingt der Arraylist.

Deshalb werden sie Fehler geben, wenn sie versuchen, einige Arraylist-Operationen zu machen

Mehr auf Liste Darstellung von Array-Link.

Einfachste Weg, dies zu tun, ist durch folgenden Code hinzufügen. Ausprobiert und getestet.

Sie können es in Java tun 8 wie folgt

beantwortet 7. Juni um 12:14

beantwortet 11. Juni um 9:03

nur Antworten Code sind verpönt in SO. Bitte fügen Sie eine Erklärung für das Wohl anderer zu lesen Sie den Code! - Arnav Borborah 11. Juni um 15:42 Uhr

Die Ausgabe ist.
Hallo
Welt

So, hier werde ich kurz Beispiel für zwei Anwendungsfälle geben.

Unveränderliche Sammlung Schöpfung. Wenn Sie nicht möchten, dass die Sammlung Objekt nach der Erstellung ändern

Liste Elementliste = Arrays.asList (array)

Liste Elementliste = new Arraylist(Arrays.asList (array));

14 Stunden beantwortet vor

In Verbindung stehende Artikel