In diesem Abschnitt werden wir diskutieren So konvertieren Sie Set ( HashSet oder TreeSet ) in Liste ( Anordnungsliste oder LinkedList ).
Es gibt folgende Möglichkeiten, Set in List in Java zu konvertieren:
- Nativer Ansatz
- Verwenden des Konstruktors (ArrayList oder LinkedList)
- Verwenden der ArrayList addAll()-Methode
- Benutzen Strom in Java
Nativer Ansatz
Die Logik für den nativen Ansatz ist sehr einfach. Bei diesem Ansatz erstellen wir einfach ein Set (HashSet oder TreeSet), durchlaufen das Set und fügen mithilfe einer Schleife alle Elemente des Sets zur Liste hinzu.
SetToListExample1.java
import java.util.*; public class SetToListExample1 { public static void main(String args[]) { //creating a Set of type String Set set = new HashSet(); //adding elements to the Set set.add('Bordeaux'); set.add('Cannes'); set.add('Chamonix'); set.add('Chartres'); set.add('Clermont-Ferrand'); set.add('Limoges'); set.add('Marseille'); set.add('Nice'); set.add('Paris'); //determines the size of Set int n = set.size(); //creates an ArrayList of size n List list = new ArrayList(n); //loop iterates over Set for (String x : set) //adds elements to the list list.add(x); System.out.println('ArrayList is: '); //loop iterates over List for (String x : list) //prints the elements System.out.println(x); } }
Ausgabe:
ArrayList is: Cannes Bordeaux Marseille Nice Clermont-Ferrand Chartres Limoges Chamonix Paris
Verwenden des Konstruktors (ArrayList- oder LinkedList-Klasse)
Die Logik ist die gleiche wie oben. Der einzige Unterschied besteht darin, dass wir den Konstruktor der ArrayList- und LinkedList-Klassen verwendet und Set-Elemente an den Konstruktor übergeben haben.
List list = new ArrayList(set); List lList = new LinkedList(set);
SetToListExample2.java
import java.util.*; public class SetToListExample2 { public static void main(String args[]) { //creating a HashSet of type String Set set= new HashSet(); //adding elements to the Set set.add('Sharjah'); set.add('Dubai'); set.add('Abu Dhabi'); set.add('Kalba'); set.add('Dhaid'); set.add('Hatta'); //creates an ArrayList using constructor and passing elements to the constructor List list = new ArrayList(set); System.out.println('ArrayList is: '); //loop iterates over the list for (String x : list) //prints the ArrayList System.out.println(x); System.out.println(' LinkedList is: '); //creates LinkedList using constructor and passing elements to the constructor List lList = new LinkedList(set); //loop iterates over LinkedList for (String x : lList) //prints the LinkedList System.out.println(x); } }
Ausgabe:
Kacke
ArrayList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi LinkedList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi
Verwenden der Methode ArrayList.addAll()
Die Methode ArrayList.addAll() hängt alle Elemente in der angegebenen Sammlung an das Ende dieser Liste an, und zwar in der Reihenfolge, in der sie vom Iterator der angegebenen Sammlung zurückgegeben werden. Es überschreibt die addAll()-Methode der AbstractCollection-Klasse.
SetToListExample3.java
import java.util.*; public class SetToListExample3 { public static void main(String args[]) { //converting HashSet to ArrayList //creating a HashSet of type String Set set = new HashSet(); //adding elements to the Set set.add('Texas'); set.add('California'); set.add('Illinois'); set.add('Dallas'); set.add('San Jose'); set.add('California'); set.add('Austin'); set.add('Columbus'); //creates a constructor of the ArrayList class List list = new ArrayList(); //adding the set elements to the list using the addAll() method list.addAll(set); System.out.println('ArrayList is: '); //loop iterates over the LinkedList for (String x : list) //prints the ArrayList System.out.println(x); //converting HashSet to LinkedList List linkList = new LinkedList(); //adding Set elements to the LinkedList using the addAll() method linkList.addAll(set); System.out.println(' LinkedList is: '); //loop iterates over the LinkedList for (String x : linkList) //prints the LinkedList System.out.println(x); } }
Ausgabe:
ArrayList is: Texas Illinois Columbus California Austin Dallas San Jose LinkedList is: Texas Illinois Columbus California Austin Dallas San Jose
Verwenden von Stream in Java
Wenn wir Stream zum Konvertieren von Set in eine Liste verwenden, konvertieren wir zuerst Set in einen Stream und dann den Stream in eine Liste. Es funktioniert nur in Java 8 oder späteren Versionen.
List list = set.stream().collect(Collectors.toList());
Strom(): Die Methode stream() gibt einen regulären Objektstrom einer Menge oder Liste zurück.
Stream.collect(): Die Methode „collect()“ der Stream-Klasse wird verwendet, um Elemente eines beliebigen Streams in einer Sammlung zu sammeln.
Collectors.toList(): Die Methode gibt einen Collector zurück, der die Eingabeelemente in einer neuen Liste sammelt.
Sehen wir uns ein Beispiel an.
SetToListExample4.java
import java.util.*; import java.util.stream.*; public class SetToListExample4 { public static void main(String args[]) { //Creating a hash set of strings Set set = new HashSet(); //adding elements to the Set set.add('London'); set.add('England'); set.add('Wales'); set.add('Scotland'); set.add('Bristol'); set.add('Cambridge'); //converts set to stream and then stream to list List list = set.stream().collect(Collectors.toList()); System.out.println('List is: '); //loop iterates over the list for (String x : list) //prints the list elements System.out.println(x); } }
Ausgabe:
List is: Cambridge Bristol Wales London England Scotland