EnumSet class in Java with Example

EnumSet is one of the specialized implementation of Set interface for an enumeration type. It extends AbstractSet and implements Set Interface in Java.

It is a generic class declared as:

public abstract class EnumSet<E extends Enum<E>> 

Here, E specifies the elements. E must extend Enum, which enforces the requirement that the elements must be of specified enum type.

Reference to full list of methods of this class:https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html

Important:



  • EnumSet class is a member of the Java Collections Framework & is not synchronized.
  • It’s a high performance set implementation, much faster than HashSet.
  • All elements of each EnumSet instance must be elements of a single enum type.
// Java program to illustrate working of EnumSet and
// its functions.
import java.util.EnumSet;
   
enum Gfg 
{
    CODE, LEARN, CONTRIBUTE, QUIZ, MCQ
};
public class Example
{
    public static void main(String[] args) 
    {
        // create a set
        EnumSet<Gfg> set1, set2, set3, set4;

        // add elements
        set1 = EnumSet.of(Gfg.QUIZ, Gfg.CONTRIBUTE, Gfg.LEARN, Gfg.CODE);
        set2 = EnumSet.complementOf(set1);
        set3 = EnumSet.allOf(Gfg.class);
        set4 = EnumSet.range(Gfg.CODE, Gfg.CONTRIBUTE);
        System.out.println("Set 1: " + set1);
        System.out.println("Set 2: " + set2);
        System.out.println("Set 3: " + set3);
        System.out.println("Set 4: " + set4);
    }
}

Output:

Set 1: [CODE, LEARN, CONTRIBUTE, QUIZ]
Set 2: [MCQ]
Set 3: [CODE, LEARN, CONTRIBUTE, QUIZ, MCQ]
Set 4: [CODE, LEARN, CONTRIBUTE]

Methods used in the above example:

  • of(E e1, E e2) : Creates an enum set initially containing the specified elements.
  • complementOf(EnumSet s) : Creates an enum set with the same element type as the specified enum set, initially containing all the elements of this type that are not contained in the specified set.
  • allOf(Class elementType) : Creates an enum set containing all of the elements in the specified element type.
  • range(E from, E to) : Creates an enum set initially containing all of the elements in the range defined by the two specified endpoints.


This article is contributed by Pratik Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.




Recommended Posts:



2.7 Average Difficulty : 2.7/5.0
Based on 8 vote(s)