Wie konvertiert man am einfachsten eine List
zu einer Set
in Java?
Antworten
Zu viele Anzeigen?Wenn Sie Eclipse-Kollektionen :
MutableSet<Integer> mSet = Lists.mutable.with(1, 2, 3).toSet();
MutableIntSet mIntSet = IntLists.mutable.with(1, 2, 3).toSet();
El MutableSet
Schnittstelle erweitert java.util.Set
während die MutableIntSet
Schnittstelle nicht. Sie können auch jede Iterable
zu einer Set
unter Verwendung der Sets
Fabrikklasse.
Set<Integer> set = Sets.mutable.withAll(List.of(1, 2, 3));
Es gibt weitere Erklärungen zu den veränderbaren Fabriken, die in den Eclipse Collections verfügbar sind ici .
Wenn Sie eine ImmutableSet
von einer List
können Sie die Sets
Fabrik wie folgt:
ImmutableSet<Integer> immutableSet = Sets.immutable.withAll(List.of(1, 2, 3))
Hinweis: Ich bin ein Committer für Eclipse Collections
In Java 1.8 kann die Stream-API verwendet werden, um eine Liste in eine Menge zu konvertieren. Der folgende Code zeigt zum Beispiel die Umwandlung einer Liste in eine Menge:
List<String> empList = Arrays.asList("java", "python", ".net", "javaScript", "php");
Set<String> set = empList.stream().collect(Collectors.toSet());
set.forEach(value -> System.out.printf("%s ", value));
Für den Fall, dass die Liste Objekte enthält und ich daraus ein Set erstellen möchte:
List<Employee> empList = Arrays.asList(new Employee(1, 1000, "Chandra Shekhar", 6000),
new Employee(2, 1000, "Rajesh", 8000), new Employee(3, 1004, "Rahul", 9000),
new Employee(4, 1001, "Suresh", 12000), new Employee(5, 1004, "Satosh", 7000));
Set<String> set = empList.stream().map(emp -> emp.getName()).collect(Collectors.toSet());
System.out.println(set);
- See previous answers
- Weitere Antworten anzeigen