2010-09-07 17 views
11

Si tengo una enumeración, que puede crear una EnumSet utilizando la práctica de clase EnumSetCombinando EnumSets Java

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

Dé dos EnumSets, ¿cómo puedo crear una nueva EnumSet que contiene la unión de estos dos conjuntos?

EnumSet<Suit> redAndBlack = ?

Respuesta

21

Un EnumSet es también una colección, por lo que puede utilizar muchas de las API de llamadas de colección, así como addAll.

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

En este caso, también se puede utilizar

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

Esto es correcto, responde a la pregunta, y puede ser útil para algunos lectores. ¿Por qué ha sido downvoted? –

+0

@MichaelScheper: Esta no es la unión de los dos conjuntos, es el conjunto original. En este caso son equivalentes, pero tienes razón. Si tuviera que adivinar, diría que la razón de que esto se deba a la votación negativa es porque esto es lo que aparece al buscar la unión de Java enum. – Jpatrick

+1

@Jpatrick:: asentir: parece vengativo y tonto castigar a alguien por responder la pregunta del OP, cuando es diferente de lo que deseaban. Pero se ha aclarado en las últimas 24 horas cuántos enemigos hay en el mundo, así que no debería sorprenderme. –