787 Stimmen

Der einfachste Weg, eine Liste in eine Menge in Java zu konvertieren

Wie konvertiert man am einfachsten eine List zu einer Set in Java?

4voto

Donald Raab Punkte 6053

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

1voto

Vijay Pal Singh Punkte 23

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X