77得票10回答
EnumSet是什么意思?

我有以下示例:import java.util.EnumSet; import java.util.Iterator; public class SizeSet { public static void main(String[] args) { EnumSet l...

64得票2回答
如何创建空的EnumSet?

我在处理EnumSet时遇到了困难,它出人意料的没有一个简单的构造函数,并且其方法不接受空值。 我的解决方案是: EnumSet<MyClass> x = EnumSet.copyOf(Collections.<MyClass>emptySet()); 这个有点...

49得票5回答
使用Java枚举实现位域

我维护着一个大型文档存档,并经常使用位字段来记录处理过程中或验证文档时的状态。我的旧代码简单地使用静态整数常量,例如:static int DOCUMENT_STATUS_NO_STATE = 0 static int DOCUMENT_STATUS_OK = 1 static int DOC...

45得票1回答
java.util.stream.Collectors与EnumSet Stream

我正试图使用替代位掩码,在下面是代码public static Set<Amenities> fromBitFlags(int bitFlag) { return ALL_OPTS.stream().filter(a -> (a.ameityId & bitF...

43得票5回答
从数组创建EnumSet,最短的变体是什么?

我需要从数组中得到一个EnumSet(该数组通过可变参数方法参数给出)。起初,我很惊讶在EnumSet中没有可变参数的构造函数方法(有EnumSet#of(E first, E... rest))。作为一种解决方法,我使用了以下变体:EnumSet<Options> temp = ...

34得票4回答
为什么EnumSet有这么多重载的“of”方法?

在查看 EnumSet<E> 的 of 方法时,我看到了多个重载实现的 of 方法:public static <E extends Enum<E>> EnumSet<E> of(E e) public static <E extends...

20得票2回答
在现代Java 8 API中,使用位域而不是EnumSet的理由

EnumSet自Java 5引入枚举enum以来便存在,旨在替代位字段的使用案例:速度和效率与位字段(除了不是原始类型)相当,并且具备类型安全性。另一方面,最近并且多年来备受期待的Java API—流式API—毫不掩饰地为Spliterator的characterist...

17得票4回答
Java枚举排序

我正在使用Java枚举来定义如何使用按钮在模态窗口中进行渲染(Vaadin处理渲染)。我的问题是,当我运行GUI时,我的按钮每次都以随机顺序出现。所以我的问题是,由于我使用枚举集来保存我的按钮,它们会无序吗?最好的方法是将其转换为有序列表吗? 我的设置枚举public enum MODAL_...

16得票3回答
组合Java EnumSets

如果我有一个枚举类型,我可以使用EnumSet类创建一个EnumSet集合enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES } EnumSet<Suit> reds = EnumSet.of(Suit.HEARTS, Suit.DIAMONDS...

13得票2回答
为什么EnumSet或EnumMap比它们的哈希对应物更具性能优势?

下面是来自Java EnumMap文档“实现说明”部分的内容: 实现说明:所有基本操作都能以恒定时间执行。它们可能(但不保证)比其HashMap对应项更快。 我在EnumSet的Java文档中也看到了类似的语句。我想知道为什么EnumSets和EnumMaps更有可能比哈希的对应项更快?