前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础之BitSet

java基础之BitSet

作者头像
九转成圣
发布2024-04-10 17:22:59
900
发布2024-04-10 17:22:59
举报
文章被收录于专栏:csdncsdn

java基础之BitSet

所在包

java.util

基础用法

代码语言:javascript
复制
BitSet bs = new BitSet(10);
// 实际长度是64
int size = bs.size();
System.out.println("size = " + size);
// 逻辑长度(也就是最后一个1的小标+1)
int length = bs.length();
System.out.println("length = " + length);
bs.set(1);
bs.set(3);
bs.set(5);
length = bs.length();
System.out.println("length = " + length);
代码语言:javascript
复制
size = 64
length = 0
length = 6

遍历

遍历为1的下标

代码语言:javascript
复制
BitSet bs = new BitSet(10);
bs.set(1);
bs.set(3);
bs.set(5);
bs.stream().boxed().forEach(System.out::println);
代码语言:javascript
复制
1
3
5

遍历为0的下标

代码语言:javascript
复制
BitSet bs = new BitSet(10);
bs.set(1);
bs.set(3);
bs.set(5);
// todo 写法有问题 
for (int i = bs.nextClearBit(0); i >= 0 && i < bs.length(); i = bs.nextClearBit(i + 1)) {
    // operate on index i here
    if (i == Integer.MAX_VALUE) {
        break; // or (i+1) would overflow
    }
    System.out.println("false 下标:" + i);
}
代码语言:javascript
复制
false 下标:0
false 下标:2
false 下标:4

注意:

  1. 遍历为0的小标时如果不加i < bs.length()限制会输出很多
  2. 加上i < bs.length()只能到逻辑长度
  3. 加上i < bs.size()到实际长度,可能大于声明的(比如声明的是10,size=64)
  4. 可能是觉得分析1的小标更有实际意义
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • java基础之BitSet
  • 所在包
  • 基础用法
  • 遍历
    • 遍历为1的下标
      • 遍历为0的下标
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档