Liste verketten in Java
-
Listenverkettung mit der Methode
cacat()
in Java 8 -
Listenverkettung mit der Methode
Stream.of()
in Java 8
Eine geordnete Sammlung von Elementen, die dynamisch wachsen kann, wird als List
-Sammlung bezeichnet. Es wird als node
-Element dargestellt, und jeder Knoten enthält eine Referenz
auf den nächsten Knoten und das Element. Zu den Operationen, die wir über eine Listensammlung ausführen können, gehören das Durchlaufen von Elementen, das Einfügen, Aktualisieren und Löschen mithilfe der Indizes.
Java bietet eine List
-Schnittstelle, die verschiedene Methoden für ihre Funktionsweise bietet. Die mehreren Implementierungen der Liste umfassen ArrayList
, LinkedList
und SortedList
. Es gibt verschiedene Eigenschaften der Liste, die:
- Werden doppelte Werte in der Liste.
- Speichern Sie Null-Elemente.
- Dynamisch wachsen, im Gegensatz zu Arrays, deren Größe definiert ist.
Der folgende Code veranschaulicht, wie Sie eine Java-Verkettungsliste erstellen können:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListConcatenation {
public static void main(String[] args) {
List<String> birds_list =
Stream.of("pigeon", "crow", "squirrel").collect(Collectors.toList()); // Java 8
List<String> animal_list = List.of("cat", "dog", "rabbit"); // Java 9
System.out.println("Way 1");
List<String> stringArrayList = new ArrayList<String>(); // Java7
stringArrayList.addAll(birds_list);
stringArrayList.addAll(animal_list);
System.out.println(stringArrayList);
System.out.println("Way 2");
List<String> newList =
Stream.concat(birds_list.stream(), animal_list.stream()).collect(Collectors.toList());
System.out.println(newList);
System.out.println("Way 3");
List<String> newList2 =
Stream.of(birds_list, animal_list).flatMap(Collection::stream).collect(Collectors.toList());
System.out.println(newList2);
}
}
Im obigen Codeblock initialisieren die ersten beiden Zeilen die Listen, die wir verketten möchten.
Die erste Art der Listeninitialisierung besteht darin, Elemente zum Zeitpunkt der Deklaration selbst anzugeben. Entsprechend der Java 8
-Methodik wird die Stream
-Schnittstelle verwendet. Streams fungieren als Wrapper für die Datenquelle und bieten Methoden zum Betreiben und Verarbeiten der Daten. Die statische Methode of
nimmt und erstellt den sequentiellen Strom der bereitgestellten Elemente als Parameter und gibt den Elementstrom zurück. Die von uns durchgeführte Operationskette ist in Java 8. Die Methode collect
ist eine Terminaloperation, die den nach der Reduktion bereitgestellten Stream
sammelt.
Eine andere Möglichkeit, die Liste zu initialisieren, ist die Verwendung der Version Java 9
. Es bietet eine bequeme Möglichkeit, eine Liste mit der statischen Factory-Methode List.of
zu initialisieren, die unveränderliche Listen erstellt.
Schließlich wird ein kombiniertes List
-Objekt traditionell mit der Java 7
-Version initialisiert. Die Methode addAll()
wird über die Instanz newList
aufgerufen. Die Methode hängt die angegebene Sammlung an deren Ende an die identifizierte Sammlung an. Es gibt true
zurück, wenn das Anhängen der Liste erfolgreich war. Die Methode kann NullPointerException
auslösen, wenn die übergebene Listensammlung null ist.
Die kombinierte Listeninstanz enthält nun die Sammlung birds_list
. Ebenso wird die Instanz animal_list
zu stringArrayList
hinzugefügt. Und schließlich erstellt es nach dem Drucken der Liste eine sequentielle Sammlung, die nacheinander angehängt wird.
Unten ist die Konsolenausgabe des Codeblocks:
Way 1 [pigeon, crow, squirrel, cat, dog, rabbit] Way 2 [pigeon, crow, squirrel, cat, dog, rabbit]
Way 3 [pigeon, crow, squirrel, cat, dog, rabbit]
Listenverkettung mit der Methode cacat()
in Java 8
Die Abbildung verwendet denselben Codeblock, um die Methode concat()
zu zeigen – sie ist statisch in der Schnittstelle Stream
. Es wird als “zwischengeschaltete” Operation oder verzögerte Initialisierung angesehen, da es ausgeführt wird, wenn eine Terminaloperation über die Funktion angewendet wird. Die Methode concat()
nimmt zwei Streams an, die verkettet werden sollen. Und es gibt die kombinierte Liste aus den beiden Streams zurück, die wir als Parameter übergeben. Über diese Methode wird die Funktion collect
aufgerufen, um den Stream in das gewünschte Format zu konvertieren. Die Funktion nimmt den Kollektor als Argument, und in unserem Fall wird die Funktion Collectors.toList()
übergeben, um den Stream in den Typ List
zu reduzieren.
Die Ausgabe wäre ähnlich dem ersten Codeblock und wird im obigen Konsolenprotokoll unter der Anweisung Way 2
ausgegeben.
Listenverkettung mit der Methode Stream.of()
in Java 8
Wie oben erwähnt, ist of
eine statische Methode in der Schnittstelle Stream
, die Elemente übernimmt. Diese Elemente können also primitive
Datentypen oder collections
-Klassen sein. Die Sammlungen von Vögeln und Tieren gehen als Argumente durch. Nun wird die Methode flatMap
in der Kette der Aufrufe aufgerufen und dient der Verarbeitung und Transformation des übergebenen Streams.
Die Methode flatMap
verwendet als Parameter eine Funktion
. Die Methode wendet Transformationen über die Elemente an und reduziert das Ergebnis. In diesem Fall wird Collection::stream
übergeben, um die Elemente in einen einzigen Stream zu konvertieren, der nach der Verarbeitung zurückgegeben wird. Der Stream wird nun mit der Methode collect
gesammelt.
Die Ausgabe entspricht der des obigen Konsolenblocks mit der Überschrift Weg 3
.
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn