Introduction
The EnumSet class in Java is a part of the java.util package.
Is is a specialized Set implementation designed for use with enum types.
Table of Contents
- What is the
EnumSetClass? - Common Methods
- Examples of Using the
EnumSetClass - Conclusion
1. What is the EnumSet Class?
EnumSet is a high-performance set implementation for enum types. It is more efficient than other set implementations for enums, offering fast access and minimal memory usage.
2. Common Methods
of(E first, E... rest): Creates anEnumSetwith the specified elements.add(E e): Adds the specified element to the set.remove(Object o): Removes the specified element from the set.contains(Object o): Returnstrueif the set contains the specified element.allOf(Class<E> elementType): Creates anEnumSetcontaining all elements of the specified enum type.noneOf(Class<E> elementType): Creates an emptyEnumSetfor the specified enum type.range(E from, E to): Creates anEnumSetcontaining all elements in the specified range.
3. Examples of Using the EnumSet Class
Example 1: Creating and Using an EnumSet
This example demonstrates how to create and use an EnumSet with enum elements.
import java.util.EnumSet;
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY
}
public class EnumSetExample {
public static void main(String[] args) {
EnumSet<Day> workdays = EnumSet.of(Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY);
System.out.println("Workdays: " + workdays);
}
}
Output:
Workdays: [MONDAY, TUESDAY, WEDNESDAY]
Example 2: Adding and Removing Elements
This example shows how to add and remove elements from an EnumSet.
import java.util.EnumSet;
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY
}
public class ModifyEnumSetExample {
public static void main(String[] args) {
EnumSet<Day> days = EnumSet.noneOf(Day.class);
days.add(Day.FRIDAY);
days.add(Day.THURSDAY);
System.out.println("Days after adding: " + days);
days.remove(Day.THURSDAY);
System.out.println("Days after removing Thursday: " + days);
}
}
Output:
Days after adding: [THURSDAY, FRIDAY]
Days after removing Thursday: [FRIDAY]
Example 3: Using allOf and range
This example demonstrates how to create an EnumSet with all elements and a range of elements.
import java.util.EnumSet;
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY
}
public class AllOfRangeExample {
public static void main(String[] args) {
EnumSet<Day> allDays = EnumSet.allOf(Day.class);
System.out.println("All days: " + allDays);
EnumSet<Day> midWeek = EnumSet.range(Day.TUESDAY, Day.THURSDAY);
System.out.println("Mid-week days: " + midWeek);
}
}
Output:
All days: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY]
Mid-week days: [TUESDAY, WEDNESDAY, THURSDAY]
4. Conclusion
EnumSet is an efficient and type-safe set implementation for enum elements, providing fast access and minimal memory overhead. It is ideal for scenarios where the elements are known at compile time and are limited to enum types.