Convertir enumeración en un conjunto/lista
¿Existe algún método puente de una sola línea para volcar una enumeración determinada o ?java.util.List
java.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).
Puedes usar Collections.list()
para convertir un Enumeration
en a List
en 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));
¿Qué tal esto? Collections.list(Enumeración e) devuelve unArrayList<T>
Si lo necesita Set
en 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.
Cuando se usa guayaba (Ver documento ) existe Iterators.forEnumeration
. Dado un, Enumeration x
puedes 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));