Filling a List with all enum values in Java

MonoThreaded picture MonoThreaded · Apr 22, 2013 · Viewed 162.1k times · Source

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?

Answer

Peter Lawrey picture Peter Lawrey · Apr 22, 2013

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