EnumSet and EnumMap
Use EnumSet and EnumMap for efficient, type-safe enum-based collections.
EnumSet and EnumMap
EnumSet and EnumMap are highly optimized collection implementations for enums. They use bit vectors internally — much faster than HashSet/HashMap for enum keys.
EnumSet: Creating Sets
EnumSet provides factory methods to create sets of enum constants.
import java.util.*;
enum Day { MON, TUE, WED, THU, FRI, SAT, SUN }
EnumSet<Day> weekdays = EnumSet.range(Day.MON, Day.FRI);
EnumSet<Day> weekend = EnumSet.of(Day.SAT, Day.SUN);
EnumSet<Day> allDays = EnumSet.allOf(Day.class);
EnumSet<Day> noDays = EnumSet.noneOf(Day.class);
System.out.println(weekdays); // [MON, TUE, WED, THU, FRI]
System.out.println(weekend); // [SAT, SUN]
System.out.println(allDays.size()); // 7