2010-09-07 11 views
11

, iki EnumSets ver kullanışlı EnumSet sınıfınıO setlerinin ikisinin birliğini içeren yeni EnumSet nasıl oluşturabileceğini, ben bir Enum varsa

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

kullanarak bir EnumSet oluşturabilir Java EnumSets birleştiren? Böyle addAll olarak, Koleksiyon API birçok yanı çağrıları kullanabilmesi

EnumSet<Suit> redAndBlack = ?

cevap

21

Bir EnumSet, aynı zamanda bir koleksiyon.

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

, ayrıca

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

Bu doğrudur, soru cevaplar kullanabilir ve bazı okuyucular için yararlı olabilir. Neden reddedildi? –

+0

@MichaelScheper: Bu iki kümenin birleşimi değil, orijinal set. Bu durumda onlar eşdeğerdir, ama haklısınız. Eğer tahmin etmem gerekirse, bunun nedeninin reddedildiğini söyleyebilirim çünkü java enum birliğini ararken ortaya çıkan şey budur. – Jpatrick

+1

@Jpatrick:: nod: OP'nin sorusunu cevaplamak istediği kişiden, istediği şeyden farklı olduğunda, birisini cezalandırmak için kindar ve aptalca görünüyor. Ama son 24 saat içinde dünyada kaç tane haydut olduğu belli oldu, bu yüzden şaşırmamalıyım. –