博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用EnumSet 代替位域(32)
阅读量:6239 次
发布时间:2019-06-22

本文共 307 字,大约阅读时间需要 1 分钟。

hot3.png

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

7b14f0b690a158bcc2fdff667042c745851.jpg

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

2eb4bdc7ec9266c4056ceef890347c2fe82.jpg

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

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

7edf3976fb9870a23cba3576cbee7af8bd8.jpg

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

b50a2d668eb75f28daed4fc71e864e7a943.jpg

  • EnumSet 集 位域的性能优势和枚举类型所有优点于一身
  • 缺点是:无法创建不可变的EnumSet 集合

转载于:https://my.oschina.net/u/3847203/blog/1833011

你可能感兴趣的文章
【转载】常用统计软件下载地址大全
查看>>
新的思想来源
查看>>
对于超大型SQL SERVER数据库执行DBCC操作
查看>>
Binary Tree Level Order Traversal II
查看>>
Python 点滴 I
查看>>
Java泛型详解
查看>>
分治算法思想介绍
查看>>
1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
查看>>
MVP模式在Android项目中的使用
查看>>
一起同过窗
查看>>
XMLHttpRequest详解
查看>>
9 数字载波传输1
查看>>
iOS开发之功能模块--高仿Boss直聘的IM界面交互功能
查看>>
Flume Source 实例
查看>>
MySQL 缓存表建触发器
查看>>
.NetCore~C#6的一些新特性
查看>>
Recurrent Neural Networks(RNN) 循环神经网络初探
查看>>
多线程中数的原子性加减
查看>>
客户被绑,蒙眼,惊问:“想干什么?” 对方不语,鞭笞之,客户求饶:“别打,要钱?” 又一鞭,“十万够不?” 又一鞭,“一百万?” 又一鞭。客户崩溃:“你们TMD到底要啥?” “要什么?......
查看>>
jQuery.fly插件实现添加购物车抛物线效果
查看>>