EnumSet
Fast set operations on enums.
What Is EnumSet?
EnumSet is a specialized Set implementation for enum types only.
Internally it is a bit vector: each constant maps to one bit. This makes it extremely fast and memory-efficient compared to a HashSet of enums.
import java.util.EnumSet;
import java.util.Set;
public class Main {
enum Day { MON, TUE, WED, THU, FRI, SAT, SUN }
public static void main(String[] args) {
Set<Day> weekend = EnumSet.of(Day.SAT, Day.SUN);
System.out.println(weekend);
}
}Creating With of
The factory EnumSet.of(...) creates a set from listed constants. There are overloads for one through five elements plus a varargs version.
import java.util.EnumSet;
public class Main {
enum Perm { READ, WRITE, EXECUTE }
public static void main(String[] args) {
EnumSet<Perm> perms = EnumSet.of(Perm.READ, Perm.WRITE);
System.out.println(perms);
}
}