Dans cette section, nous discuterons comment convertir Set ( Jeu de hachage ou Ensemble d'arbres ) dans la liste ( Liste des tableaux ou Liste liée ).
historique des versions d'Android
Il existe les manières suivantes de convertir Set en List en Java :
- Approche native
- Utilisation du constructeur (ArrayList ou LinkedList)
- Utilisation de la méthode ArrayList addAll()
- En utilisant Flux en Java
Approche native
La logique de l’approche native est très simple. Dans cette approche, nous créons simplement un ensemble (HashSet ou TreeSet), parcourons l'ensemble et ajoutons tous les éléments de l'ensemble à la liste à l'aide d'une boucle.
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); } }
Sortir:
ArrayList is: Cannes Bordeaux Marseille Nice Clermont-Ferrand Chartres Limoges Chamonix Paris
Utilisation du constructeur (classe ArrayList ou LinkedList)
La logique est la même que ci-dessus. La seule différence est que nous avons utilisé le constructeur des classes ArrayList et LinkedList et transmis les éléments set au constructeur.
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); } }
Sortir:
ArrayList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi LinkedList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi
Utilisation de la méthode ArrayList.addAll()
La méthode ArrayList.addAll() ajoute tous les éléments de la collection spécifiée à la fin de cette liste, dans l'ordre dans lequel ils sont renvoyés par l'itérateur de la collection spécifiée. Il remplace la méthode addAll() de la classe AbstractCollection.
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); } }
Sortir:
ArrayList is: Texas Illinois Columbus California Austin Dallas San Jose LinkedList is: Texas Illinois Columbus California Austin Dallas San Jose
Utiliser Stream en Java
Si nous utilisons Stream pour convertir Set en List, nous convertirons d’abord Set en stream, puis convertirons le stream en liste. Cela fonctionne uniquement dans Java 8 ou versions ultérieures.
List list = set.stream().collect(Collectors.toList());
flux(): La méthode stream() renvoie un flux d'objets régulier d'un ensemble ou d'une liste.
Stream.collect() : La méthode collect() de la classe Stream est utilisée pour accumuler des éléments de n’importe quel Stream dans une collection.
Collecteurs.toList() : La méthode renvoie un collecteur qui collecte les éléments d'entrée dans une nouvelle liste.
Voyons un exemple.
Java lit le fichier ligne par ligne
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); } }
Sortir:
List is: Cambridge Bristol Wales London England Scotland