Convertir enumeración en un conjunto/lista

Resuelto Anton Kraievyi asked hace 13 años • 6 respuestas

¿Existe algún método puente de una sola línea para volcar una enumeración determinada o ?java.util.Listjava.util.Set

Algo integrado como Arrays.asList()o Collection.toArray()debería existir en alguna parte, pero no puedo encontrarlo en la ventana del evaluador de mi depurador IntelliJ (y tampoco en los resultados de Google/SO).

Anton Kraievyi avatar Apr 10 '11 16:04 Anton Kraievyi
Aceptado

Puedes usar Collections.list()para convertir un Enumerationen a Listen una línea:

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

No existe un método similar para obtener un archivo Set, sin embargo, aún puedes hacerlo en una línea:

Set<T> set = new HashSet<T>(Collections.list(enumeration));
WhiteFang34 avatar Apr 10 '2011 09:04 WhiteFang34

¿Qué tal esto? Collections.list(Enumeración e) devuelve unArrayList<T>

Nate W. avatar Apr 10 '2011 09:04 Nate W.

Si lo necesita Seten lugar de List, puede usar EnumSet.allOf() .

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

Actualización : JakeRobb tiene razón. Mi respuesta es sobre java.lang.Enum en lugar de java.util.Enumeration. Perdón por la respuesta no relacionada.

Timur Levadny avatar Jan 04 '2017 20:01 Timur Levadny

Cuando se usa guayaba (Ver documento ) existe Iterators.forEnumeration. Dado un, Enumeration xpuedes hacer lo siguiente:

para obtener un conjunto inmutable:

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

para obtener una lista inmutable:

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

para obtener un hashSet:

Sets.newHashSet(Iterators.forEnumeration(x));
Alexander Oh avatar Apr 18 '2017 12:04 Alexander Oh