2010-09-07 3 views
11

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

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

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

EnumSet<Suit> redAndBlack = ?

ответ

21

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

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

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

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

Это правильно, отвечает на вопрос, и может быть полезно для некоторых читателей. Почему он был заблокирован? –

+0

@MichaelScheper: Это не объединение двух наборов, это оригинальный набор. В этом случае они эквивалентны, но вы правы. Если бы я должен был догадаться, я бы сказал, что причина этого заключается в том, что это то, что появляется при поиске java enum union. – Jpatrick

+1

@Jpatrick:: nod: Кажется мстительным и глупым наказать кого-то за ответ на вопрос OP, когда он отличается от того, чего они хотели спросить. Но за последние 24 часа выяснилось, сколько ненавистников существует в мире, поэтому я не должен удивляться. –

 Смежные вопросы

  • Нет связанных вопросов^_^