0Pricing
Java Academy · Lesson

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

All lessons in this course

  1. Enums with Fields and Methods
  2. Abstract Methods in Enums
  3. EnumSet
  4. EnumMap
← Back to Java Academy