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"));

9voto

Kavinda Pushpitha Punkte 219

Verwenden Sie den folgenden Code, um ein Element-Array in eine ArrayList zu konvertieren.

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

ArrayList<Element>elementArray=new ArrayList();
for(int i=0;i<array.length;i++) {
    elementArray.add(array[i]);
}

8voto

Arpan Saini Punkte 3235

Gegebenes Objekt-Array:

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

Array in Liste umwandeln:

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

Array in ArrayList umwandeln

    ArrayList<Element> arrayList = Arrays.stream(array)
                                       .collect(Collectors.toCollection(ArrayList::new));

Array in LinkedList umwandeln

    LinkedList<Element> linkedList = Arrays.stream(array)
                     .collect(Collectors.toCollection(LinkedList::new));

Liste drucken:

    list.forEach(element -> {
        System.out.println(element.i);
    });

OUTPUT

1

2

3

6voto

Manifest Man Punkte 675

Sie können auch Folgendes verwenden Polymorphismus zur Erklärung der ArrayList während des Aufrufs der Arrays -Schnittstelle wie folgt:

List<Element> arraylist = new ArrayList<Integer>(Arrays.asList(array));

Beispiel:

Integer[] array = {1};    // autoboxing
List<Integer> arraylist = new ArrayList<Integer>(Arrays.asList(array));

Das sollte problemlos funktionieren.

6voto

Himanshu Dave Punkte 119

Die Array-Klasse von Java 8 bietet eine stream()-Methode mit überladenen Versionen, die sowohl primitive Arrays als auch Object-Arrays akzeptiert.

/**** Converting a Primitive 'int' Array to List ****/

int intArray[] = {1, 2, 3, 4, 5};

List<Integer> integerList1 = Arrays.stream(intArray).boxed().collect(Collectors.toList());

/**** 'IntStream.of' or 'Arrays.stream' Gives The Same Output ****/

List<Integer> integerList2 = IntStream.of(intArray).boxed().collect(Collectors.toList());

/**** Converting an 'Integer' Array to List ****/

Integer integerArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

List<Integer> integerList3 = Arrays.stream(integerArray).collect(Collectors.toList());

6voto

Sumit Das Punkte 301

Jeder hat bereits genügend gute Antworten auf Ihr Problem gegeben. Jetzt müssen Sie aus allen Vorschlägen entscheiden, welcher Ihren Anforderungen entspricht. Es gibt zwei Arten von Sammlungen, die Sie kennen müssen. Die eine ist eine unveränderte Sammlung und die andere eine Sammlung, die es Ihnen erlaubt, das Objekt später zu verändern.

Hier werde ich also ein kurzes Beispiel für zwei Anwendungsfälle geben.

  • Erstellung einer unveränderlichen Sammlung :: Wenn Sie das Sammlungsobjekt nach der Erstellung nicht verändern wollen

    List<Element> elementList = Arrays.asList(array)

  • Mutable collection creation :: Wenn Sie das erstellte Sammlungsobjekt nach der Erstellung ändern möchten.

    List<Element> elementList = new ArrayList<Element>(Arrays.asList(array));

0 Stimmen

List<Element> elementList = Arrays.asList(array) erzeugt einen Wrapper über dem ursprünglichen Array, der das ursprüngliche Array als Liste verfügbar macht. Es wird also ein Wrapper-Objekt erstellt, von dem nichts aus dem ursprünglichen Array kopiert wird. Daher sind Operationen wie das Hinzufügen oder Entfernen von Elementen nicht möglich.

4 Stimmen

Beachten Sie, dass Ihre "unveränderliche Sammlung" nicht wirklich unveränderlich ist - die List zurückgegeben von Arrays.asList ist nur ein Wrapper über das ursprüngliche Array und ermöglicht den Zugriff auf einzelne Elemente und deren Änderung über get y set . Sie sollten vielleicht klarstellen, dass Sie "keine Elemente hinzufügen oder entfernen" meinen und nicht "unveränderlich", was bedeutet, dass sie sich überhaupt nicht ändern.

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