У овом одељку ћемо разговарати како претворити сет ( ХасхСет или ТрееСет ) на листу ( Низ листа или ЛинкедЛист ).
Постоје следећи начини за претварање Сет у Лист у Јави:
- Нативе Аппроацх
- Коришћење конструктора (АрраиЛист или ЛинкедЛист)
- Коришћење методе АрраиЛист аддАлл().
- Користећи Стреам у Јави
Нативе Аппроацх
Логика домаћег приступа је врло једноставна. У овом приступу једноставно креирамо скуп (ХасхСет или ТрееСет) и понављамо скуп и додајемо све елементе скупа на листу уз помоћ петље.
СетТоЛистЕкампле1.јава
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); } }
Излаз:
ArrayList is: Cannes Bordeaux Marseille Nice Clermont-Ferrand Chartres Limoges Chamonix Paris
Коришћење конструктора (АрраиЛист или ЛинкедЛист класа)
Логика је иста као горе. Једина разлика је у томе што смо користили конструктор класе АрраиЛист и ЛинкедЛист и проследили елементе скупа у конструктор.
List list = new ArrayList(set); List lList = new LinkedList(set);
СетТоЛистЕкампле2.јава
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
Коришћење методе АрраиЛист.аддАлл().
Метод АрраиЛист.аддАлл() додаје све елементе наведене колекције на крај ове листе, редоследом којим их враћа Итератор наведене колекције. Он замењује метод аддАлл() класе АбстрацтЦоллецтион.
СетТоЛистЕкампле3.јава
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
Коришћење Стреам-а у Јави
Ако користимо Стреам да конвертујемо Сет у Листу, прво ћемо конвертовати Сет у стреам, а затим ћемо конвертовати стреам у листу. Ради само у Јави 8 или новијим верзијама.
List list = set.stream().collect(Collectors.toList());
стреам(): Метод стреам() враћа обичан ток објеката скупа или листе.
Стреам.цоллецт(): Метод цоллецт() класе Стреам се користи за акумулацију елемената било ког Стреам-а у колекцију.
Цоллецторс.тоЛист(): Метод враћа Цоллецтор који прикупља улазне елементе у нову листу.
Хајде да видимо пример.
СетТоЛистЕкампле4.јава
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