Search code examples
javaenumset

Combining Java EnumSets


If I have an Enum, I can create an EnumSet using the handy EnumSet class

enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES }
EnumSet<Suit> reds = EnumSet.of(Suit.HEARTS, Suit.DIAMONDS);
EnumSet<Suit> blacks = EnumSet.of(Suit.CLUBS, Suit.SPADES);

Give two EnumSets, how can I create a new EnumSet which contains the union of both of those sets?

EnumSet<Suit> redAndBlack = ?


Solution

  • An EnumSet is also a collection, so you can use many of the Collection API calls as well, such as addAll.

    EnumSet<Suit> redAndBlack = EnumSet.copyOf(reds);
    redAndBlack.addAll(blacks);