4097 Stimmen

ArrayList aus Array erstellen

Ich habe ein Array, das wie initialisiert wird:

Element[] array = {new Element(1), new Element(2), new Element(3)};

Ich möchte dieses Array in ein Objekt des Typs ArrayList Klasse.

ArrayList<Element> arraylist = ???;

59 Stimmen

In Java9 --> List<String> list = List.of("Hallo", "Welt", "von", "Java");

32 Stimmen

@MarekM Diese Antwort ist falsch, denn sie gibt keine ArrayList . Das Poster hat ausdrücklich darum gebeten.

7 Stimmen

Ich denke, dass er die Listenschnittstelle nicht verwendet hat, weil dies die beste Praxis ist. Aber wenn Sie wollen, hier ist - neue ArrayList<>(List.of("Hallo", "World", "von", "Java"));

25voto

jemystack Punkte 398

Wie alle sagten, wird dies so geschehen

 new ArrayList<>(Arrays.asList("1","2","3","4"));

und die gängige neueste Methode zur Erstellung von Arrays ist observableArrays

ObservableList: Eine Liste, die es den Zuhörern ermöglicht, Änderungen zu verfolgen, wenn sie auftreten.

für Java SE können Sie versuchen

FXCollections.observableArrayList(new Element(1), new Element(2), new Element(3));

das ist laut Oracle Docs

observableArrayList() Erzeugt eine neue leere Observable-Liste, die durch eine Array-Liste unterstützt wird. observableArrayList(E... items) Erzeugt eine neue beobachtbare Array-Liste mit hinzugefügten Elementen.

Java 9 aktualisieren

auch in Java 9 ist es ein bisschen einfach:

List<String> list = List.of("element 1", "element 2", "element 3");

23voto

Vaseph Punkte 684

In Java 8 können Sie dies auch mit Stream tun.

 List<Element> elements = Arrays.stream(array).collect(Collectors.toList());

3 Stimmen

Ab dem java 8 , Collectors.toList() gibt eine ArrayList . Dies kann sich jedoch in zukünftigen Versionen von Java ändern. Collectors.toCollection() wo Sie genau angeben können, welche Art von Sammlung Sie erstellen möchten.

18voto

Vikrant Kashyap Punkte 5760
  1. Wenn wir uns die Definition von Arrays.asList() Methode erhalten Sie etwa so etwas:

     public static <T> List<T> asList(T... a) //varargs are of T type. 

    Sie könnten also initialisieren arraylist wie diese:

     List<Element> arraylist = Arrays.asList(new Element(1), new Element(2), new Element(3));

    Hinweis : jeder new Element(int args) wird als individuelles Objekt behandelt und kann als var-args .

  2. Es könnte auch eine andere Antwort auf diese Frage geben.
    Wenn Sie die Erklärung für java.util.Collections.addAll() Methode erhalten Sie etwa so etwas:

    public static <T> boolean addAll(Collection<? super T> c, T... a);

    Daher ist dieser Code auch nützlich, um dies zu tun

    Collections.addAll(arraylist, array);

14voto

A1m Punkte 2147

Wenn das Array von einem primitiven Typ ist, werden die angegebenen Antworten nicht funktionieren. Aber seit Java 8 können Sie verwenden:

int[] array = new int[5];
Arrays.stream(array).boxed().collect(Collectors.toList());

0 Stimmen

Diese Lösung scheint nicht zu funktionieren mit char Array, entweder.

12voto

spencer.sm Punkte 16936

Eine andere einfache Möglichkeit ist, alle Elemente aus dem Array in eine neue ArrayList mit einer for-each-Schleife einzufügen.

ArrayList<Element> list = new ArrayList<>();

for(Element e : array)
    list.add(e);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X