Aufzählung in eine Menge/Liste umwandeln

Lesezeit: 2 Minuten

Benutzer-Avatar
Anton Krajewyi

Gibt es eine Einzeiler-Brückenmethode, um eine bestimmte Datei zu löschen Aufzählung zu java.util.List oder java.util.Set?

Etwas eingebautes wie Arrays.asList() oder Collection.toArray() sollte irgendwo existieren, aber ich kann das im Evaluator-Fenster meines IntelliJ-Debuggers (und auch in den Google/SO-Ergebnissen) nicht finden.

Benutzer-Avatar
WhiteFang34

Sie können verwenden Collections.list() umwandeln ein Enumeration zu einem List in einer Zeile:

List<T> list = Collections.list(enumeration);

Es gibt keine ähnliche Methode, um a zu erhalten SetSie können es jedoch immer noch in einer Zeile tun:

Set<T> set = new HashSet<T>(Collections.list(enumeration));

  • Irgendwie habe ich diese Methode verpasst, als ich in der Dropdown-Liste für die automatische Vervollständigung lauerte. Vielen Dank!

    – Anton Krajewyi

    10. April 2011 um 9:40 Uhr

Benutzer-Avatar
Nate W.

Wie wäre es damit: Collections.list(Enumeration e) gibt ein zurück ArrayList<T>

Benutzer-Avatar
Timur Levadny

Wenn Sie brauchen Set statt Listkönnen Sie verwenden EnumSet.allOf().

Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);

Aktualisieren: JakeRobb hat recht. Meine Antwort bezieht sich auf java.lang.Enum anstelle von java.util.Enumeration. Entschuldigung für die nicht zusammenhängende Antwort.

  • Ich bin mir ziemlich sicher, dass der Fragesteller nach java.util.Enumeration gefragt hat, dem alten Cousin von Iterator, nicht nach java.lang.Enum, dem, was Sie erhalten, wenn Sie das Schlüsselwort „enum“ verwenden.

    – Jake Robb

    23. Februar 2017 um 14:30 Uhr

  • Ich habe eine Google-Suche nach “Java convert enum into a set” durchgeführt und dieser Thread kam als erste Antwort zurück. @Timur bekommt meine positive Bewertung.

    – ShellDude

    29. Dezember 2019 um 6:35 Uhr

Benutzer-Avatar
Alexander Ach

Bei der Verwendung von Guave (Siehe Dok) Es gibt Iterators.forEnumeration. Gegeben ein Enumeration x Sie können Folgendes tun:

um ein unveränderliches Set zu erhalten:

ImmutableSet.copyOf(Iterators.forEnumeration(x));

um eine unveränderliche Liste zu erhalten:

ImmutableList.copyOf(Iterators.forEnumeration(x));

um ein HashSet zu erhalten:

Sets.newHashSet(Iterators.forEnumeration(x));

Benutzer-Avatar
GabiM

Gibt es auch in Apache Commons-Sammlungen
EnumerationUtils.toList(enumeration)

Ich brauchte dasselbe und diese Lösung funktioniert gut, ich hoffe, sie kann auch jemandem helfen

Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);

dann können Sie die .name() Ihrer Aufzählung erhalten.

1354560cookie-checkAufzählung in eine Menge/Liste umwandeln

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy