I det här avsnittet kommer vi att diskutera hur man konverterar Set ( HashSet eller Träduppsättning ) i listan ( ArrayList eller Länkad lista ).
Det finns följande sätt att konvertera Set till List i Java:
- Native Approach
- Använda Constructor (ArrayList eller LinkedList)
- Använder ArrayList addAll()-metoden
- Använder sig av Ström i Java
Native Approach
Logiken för den inhemska metoden är mycket enkel. I detta tillvägagångssätt skapar vi helt enkelt en uppsättning (HashSet eller TreeSet) och itererar över uppsättningen och lägger till alla element i uppsättningen till listan med hjälp av en loop.
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); } }
Produktion:
ArrayList is: Cannes Bordeaux Marseille Nice Clermont-Ferrand Chartres Limoges Chamonix Paris
Använda Constructor (ArrayList eller LinkedList Class)
Logiken är densamma som ovan. Den enda skillnaden är att vi har använt konstruktorn för klassen ArrayList och LinkedList och skickat set-element till konstruktorn.
100 km/h till mph
List list = new ArrayList(set); List lList = new LinkedList(set);
SetToListExample2.java
fibonacci-serien i 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); } }
Produktion:
ArrayList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi LinkedList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi
Använder ArrayList.addAll()-metoden
Metoden ArrayList.addAll() lägger till alla element i den angivna samlingen i slutet av den här listan, i den ordning som de returneras av den angivna samlingens Iterator. Den åsidosätter metoden addAll() för klassen 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); } }
Produktion:
ArrayList is: Texas Illinois Columbus California Austin Dallas San Jose LinkedList is: Texas Illinois Columbus California Austin Dallas San Jose
Använda Stream i Java
Om vi använder Stream för att konvertera Set till List kommer vi först att konvertera Set till stream och sedan konvertera streamen till lista. Det fungerar bara i Java 8 eller senare versioner.
List list = set.stream().collect(Collectors.toList());
ström(): Metoden stream() returnerar en vanlig objektström av en uppsättning eller lista.
Stream.collect(): collect()-metoden för Stream-klassen används för att ackumulera element från vilken Stream som helst till en samling.
skapa listor i java
Collectors.toList(): Metoden returnerar en Collector som samlar in inmatningselementen till en ny lista.
Låt oss se ett exempel.
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); } }
Produktion:
List is: Cambridge Bristol Wales London England Scotland