You cannot use the raw type EnumSet without the <MyEnum> part
EnumSet<MyEnum> enumSet = EnumSet.of(MyEnum.A, MyEnum.C);
Java 8 solution:
MyEnum[] values = MyEnum.values(); int[] ordinals = IntStream.range(0, values.length).filter(i -> enumSet.contains(values[i])).toArray();
Pre-Java solution:
int[] ordinals2 = new int[enumSet.size()]; int index = 0; for (MyEnum e : enumSet) ordinals2[index++] = e.ordinal();
Make sure it works:
System.out.println(Arrays.toString(ordinals)); System.out.println(Arrays.toString(ordinals2));
source share