使用EnumSet 代替位域(32)

原创
2018/06/20 18:11
阅读数 427

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中

  • 位操作,可以有效地执行 AND 、OR 这样的位操作
  • 但是 位域比int 常量枚举缺点更多

2、java.util 包里面的EnumSet 类是有效的替代方案

  • 从单个枚举类型中提取的多个值的多个集合
  • 整个EnumSet 就是用单个long来表示的,内部实现用到了大量位运算,性能可与位域媲美

  • EnumSet 提供静态工厂,轻松创建集合

  • EnumSet 集 位域的性能优势和枚举类型所有优点于一身
  • 缺点是:无法创建不可变的EnumSet 集合
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部