当前位置: 首页 > news >正文

茂名建设公司网站东莞企业网站建立报价

茂名建设公司网站,东莞企业网站建立报价,网站设计师工作室,无锡百度正规公司Java 中 BitSet 类的用法 API构造置位为 true清除为 false查找位反转长度运算流其他 原理底层数据结构如何工作 API 构造 无参构造 :默认为 64 个 bit 的容量 BitSet bitset new BitSet();有参构造 :设置为 n 个 bit 的容量 BitSet bitset new BitSe…

Java 中 BitSet 类的用法

  • API
    • 构造
    • 置位为 true
    • 清除为 false
    • 查找
    • 位反转
    • 长度
    • 运算
    • 其他
  • 原理
    • 底层数据结构
    • 如何工作

API

构造

  1. 无参构造 :默认为 64 个 bit 的容量
	BitSet bitset = new BitSet();
  1. 有参构造 :设置为 n 个 bit 的容量
	BitSet bitset = new BitSet(1024);
  1. 静态工厂的 valueOf 构造 :支持从 byte[], long[], ByteBuffer, LongBuffer 四种类型构造 Bitset
   BitSet.valueOf(bytes);BitSet.valueOf(longs);BitSet.valueOf(byteBuffer);BitSet.valueOf(longBuffer);

置位为 true

  1. 单独置位
	bitset.set(4);//索引为4的位置的比特被置为1,返回void
  1. 批量置位
	bitset.set(4,6);//索引在[4,6)范围内的位置的比特被置为1,返回void

清除为 false

  1. 单独清除
	bitset.clear(4);//索引为4的位置的比特被置为0,返回void
  1. 批量清除
	bitset.clear(4,6);//索引在[4,6)范围内的位置的比特被置为0,返回void
  1. 全部清除
	bitset.clear();//所有位置都被清空为0,返回void

查找

  1. 查询某一位是否已被置位
	bitset.get(4);//返回boolean,为true表示该位被置位
  1. 获取某区间的 BitSet
	bitset.get(4,6);//返回另一个 BitSet,内容取 bitset的[4,6)之间的元素

注:获取的区间后,索引的编号会改变,比如这里新的 BitSet 的 0 号索引对应的是原来 BitSet 的 4 号索引

位反转

	bitset.flip(4);bitset.flip(4,6);

长度

有三个和长度相关的 API,分别是 size、cardinal、length

  1. size:返回该 BitSet 的最大容量
  2. cardinal:返回该 BitSet 中 1 的个数
  3. length:返回最后一个1之前的所有元素的个数,如果一个1也没有就返回0

运算

  1. 判断是否有交集
	first.intersects(second);//返回boolean,如果有交集元素则为true
  1. 求交集
	first.and(second);//返回一个 BitSet
  1. 求并集
	first.or(second);//返回一个 BitSet
  1. 求异或集
	first.xor(second);//返回一个 BitSet

	bitSet.stream();//返回一个 Stream 流

其他

下面四个方法顾名思义:

	 int idx = bitset.nextSetBit(fromIndex);int idx = bitset.previousSetBit(fromIndex); int idx = bitset.nextClearBit(fromIndex);int idx = bitset.previousClearBit(fromIndex); 

原理

底层数据结构

BitSet 的底层数据结构是 long[] 数组

如何工作

置位时,把1左移对应的位数,再与 long[] 中特定的 long 元素做或运算
查询时,把1左移对应的位数,再与 long[] 中特定的 long 元素做与运算,运算结果大于0说明该位为true

http://www.yayakq.cn/news/462150/

相关文章:

  • 网站关键词放哪做网站运营的女生多吗
  • 做家装的网站有哪些wordpress如何安装主题
  • wordpress插件 漏洞南昌百度推广优化
  • 百姓网网站建设淮北信息网
  • 怎样自己做网页设计网站西安seo整站优化
  • 济南万网站建设有限公司地址wordpress主题699元
  • 企业网站的建设论文wordpress模板主题介绍
  • 新网站百度seo如何做wordpress评论框代码
  • 青岛网站建设哪家公司好网络营销推广的手段
  • 电商网站前后台模板wordpress下划线函数
  • 模板网站建设教程视频教程湖南响应式网站哪里有
  • seo站长工具 论坛百度云文件wordpress
  • 微信服务号绑定网站吗福州网站建设自助建站
  • 如何创建网站赚钱wordpress tag 转拼音
  • 淄博比较好的网站建设公司wordpress数据表大学
  • 鞍山建设集团网站赣州人才网官网入口
  • 在线平台教育网站开发怎么理解网站开发
  • 买了个域名怎么做网站网站关键词优化seo关键词之间最好用逗号
  • 国内网站怎么做有效果网站排名优化外包
  • 请谁做网站比较放心优化网站制作
  • 做牛仔裤的视频网站物流网站前端模板
  • 南宁有做门户网站的公司吗网站 优化
  • 汽车网站建设开题报告淘宝客网站开发视频教程
  • 给别人做彩票网站违法吗互联网公司设计师都设计什么
  • 云龙湖旅游景区网站建设招标wordpress新数据库
  • 校园电子商务网站建设规划书实例pc官方网站
  • 一级a做受片免费网站阿勒泰网站建设
  • 北京微信网站设计报价网站开发记入什么会计科目
  • 北京有做网站的吗安阳seo关键词优化
  • 海口会计报名网站html好看的网站的代码