在上一篇博客文章中,我们发现了EnumMap用于带有枚举键的映射。 您可能已经观察到,还有一个专门针对枚举优化的Set : EnumSet 。 
 我们再次定义一个CoffeeType枚举: 
public enum CoffeeType {ESPRESSO, POUR_OVER, FRENCH_PRESS, LATTE, FLAT_WHITE
} 现在,我们可以使用EnumSet实现创建此枚举类型的集合: 
Set<CoffeeType> favoriteCoffeeTypes = EnumSet.of(ESPRESSO, POUR_OVER, LATTE);assertThat(favoriteCoffeeTypes).containsOnly(ESPRESSO, POUR_OVER, LATTE); favoriteCoffeeTypes仍然像任何Set一样起作用,也就是说,添加重复项不会更改其内容: 
favoriteCoffeeTypes.add(POUR_OVER);assertThat(favoriteCoffeeTypes).containsOnly(ESPRESSO, POUR_OVER, LATTE); 有趣的旁注:如果您研究JDK,则会看到EnumSet由RegularEnumSet和JumboEnumSet都实现了; 枚举元素的数量决定了所使用的实现。 如果您对EnumSet实现如何高效管理感兴趣,我挑战您看看这些类。 提示:按位操作:-) 
这篇帖子从我的时事通讯018中转贴了。
翻译自: https://www.javacodegeeks.com/2018/01/enumset-enum-collections.html