logo

Java Задаване на списък

В този раздел ще обсъдим как да конвертирате Set ( HashSet или TreeSet ) в списък ( ArrayList или LinkedList ).

Java Задаване на списък

Има следните начини за конвертиране на Set в List в Java:

  • Роден подход
  • Използване на конструктор (ArrayList или LinkedList)
  • Използване на метод ArrayList addAll().
  • Използвайки Поток в Java

Роден подход

Логиката на родния подход е много проста. При този подход ние просто създаваме набор (HashSet или TreeSet) и итерираме върху набора и добавяме всички елементи от набора към списъка с помощта на цикъл.

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); } } 

Изход:

java низът е празен
 ArrayList is: Cannes Bordeaux Marseille Nice Clermont-Ferrand Chartres Limoges Chamonix Paris 

Използване на конструктор (клас ArrayList или LinkedList)

Логиката е същата като горната. Единствената разлика е, че сме използвали конструктора на класа ArrayList и LinkedList и сме предали елементи на набор към конструктора.

 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); } } 

Изход:

 ArrayList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi LinkedList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi 

Използване на метода ArrayList.addAll().

Методът ArrayList.addAll() добавя всички елементи в посочената колекция в края на този списък в реда, в който са върнати от итератора на посочената колекция. Той замества метода addAll() на класа 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); } } 

Изход:

 ArrayList is: Texas Illinois Columbus California Austin Dallas San Jose LinkedList is: Texas Illinois Columbus California Austin Dallas San Jose 

Използване на Stream в Java

Ако използваме Stream за преобразуване на Set в List, първо ще преобразуваме Set в поток и след това ще преобразуваме потока в списък. Работи само в Java 8 или по-нови версии.

Java не го прави
 List list = set.stream().collect(Collectors.toList()); 

поток (): Методът stream() връща редовен обектен поток от набор или списък.

Stream.collect(): Методът collect() на класа Stream се използва за натрупване на елементи от всеки поток в колекция.

Collectors.toList(): Методът връща колектор, който събира входните елементи в нов списък.

javascript заспиване

Да видим един пример.

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); } } 

Изход:

 List is: Cambridge Bristol Wales London England Scotland