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 = ???;
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 = ???;
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
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.
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());
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));
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.
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 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.
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"));
22 Stimmen
Es geht nicht um die Verwendung der Schnittstelle, sondern darum, dass in Ihrer Lösung die zurückgegebene Liste nicht veränderbar ist. Das könnte eher ein Problem sein, und ein Grund, warum er nach einer ArrayList fragte