Sådan konverteres en liste til et sæt i Java
Siden både Set
og List
udvide Collection
interface, er konverteringen enkel. Alt du skal gøre er bare at sende en liste for at indstille konstruktør under initialisering eller omvendt:
// convert list to set
Set set = new HashSet(list);
// convert set to list
List list = new ArrayList(set);
Liste for at indstille konvertering
Udover konstruktorinitialisering kan vi også bruge Java 8 Streams til en liste til en sæt konvertering:
// create a list
List<String> list = new ArrayList<>(Arrays.asList("🐭", "🐧", "🦅", "🐦", "🐭"));
// 1st method - constructor initialization
Set<String> set = new HashSet<>(list);
// 2nd method - using `set.addAll()`
Set<String> set2 = new HashSet<>();
set2.addAll(list);
// 3rd method - using Java 8 Streams
Set<String> set3 = list.stream().collect(Collectors.toSet());
// print values
for (String str : set3) {
System.out.println(str);
}
// 🐧
// 🐦
// 🐭
// 🦅
Da sætsamling kun tillader unikke værdier, vil alle duplikerede værdier fra listen blive fjernet.
Sæt til listekonvertering
// create a set
Set<String> set = new HashSet<>(Arrays.asList("🐭", "🐧", "🦅", "🐦", "🐭"));
// 1st method - constructor initialization
List<String> list = new ArrayList<>(set);
// 2nd method - using `set.addAll()`
List<String> list2 = new ArrayList<>();
list2.addAll(list);
// 3rd method = using Java 8 Streams
List<String> list3 = set.stream().collect(Collectors.toList());
// print values
for (String str : list3) {
System.out.println(str);
}
// 🐧
// 🐦
// 🐭
// 🦅
Læg mærke til outputtet. Da vi først initialiserede sættet, fjernede det alle duplikerede værdier og beholdt kun unikke strenge.