Объединение Java EnumSets - PullRequest
       35

Объединение Java EnumSets

11 голосов
/ 07 сентября 2010

Если у меня есть Enum, я могу создать EnumSet, используя удобный класс EnumSet

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

Дайте два EnumSet, как я могу создать новый EnumSet, который содержит объединение обоих этих наборов?

EnumSet<Suit> redAndBlack = ?

Ответы [ 2 ]

21 голосов
/ 07 сентября 2010

EnumSet также является коллекцией, поэтому вы также можете использовать многие вызовы API коллекции, например addAll.

EnumSet<Suit> redAndBlack = EnumSet.copyOf(reds);
redAndBlack.addAll(blacks);
4 голосов
/ 24 августа 2012

В этом случае вы также можете использовать

EnumSet<Suit> redAndBlack = EnumSet.allOf(Suit.class)
...