Filling a List with all enum values in Java
I would like to fill a list with all possible values of an enum
Since I recently fell in love with EnumSet
, I leveraged allOf()
EnumSet<Something> all = EnumSet.allOf( Something.class);
List<Something> list = new ArrayList<>( all.size());
for (Something s : all) {
list.add( s);
}
return list;
Is there a better way (as in non obfuscated one liner) to achieve the same result?
I wouldn't use a List in the first places as an EnumSet is more approriate but you can do
List<Something> somethingList = Arrays.asList(Something.values());
or
List<Something> somethingList =
new ArrayList<Something>(EnumSet.allOf(Something.class));
Class.getEnumConstants()
List<SOME_ENUM> enumList = Arrays.asList(SOME_ENUM.class.getEnumConstants());
There is a constructor for ArrayList
which is
ArrayList(Collection<? extends E> c)
Now, EnumSet
extends AbstractCollection
so you can just do
ArrayList<Something> all = new ArrayList<Something>(enumSet)