You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建BitSet时能否直接设置指定位?Java BitSet初始化相关技术问询

实现方案

完全可以在创建BitSet实例的同时完成指定位设置,常用的实现方式有三种:

  • 自定义工具方法(生产环境最推荐)
    自己封装静态工具方法统一处理创建+设位逻辑,无任何额外副作用,全Java版本兼容,示例代码如下:

    // 提前定义公共工具方法
    public static BitSet buildBitSet(int... bits) {
        BitSet bs = new BitSet();
        for (int b : bits) {
            bs.set(b);
        }
        return bs;
    }
    
    // 循环中直接调用即可
    ArrayList<BitSet> bitSetList = new ArrayList<>();
    for (int x : array) {
        // 传入所有需要设置的位下标即可
        bitSetList.add(buildBitSet(x, x + 1, x * 2));
    }
    
  • 双大括号初始化(仅临时测试用,不推荐生产)
    可以用匿名内部类的初始化块快速实现,缺点是会额外生成匿名类,持有外部类引用容易引发内存泄漏:

    for (int x : array) {
        bitSetList.add(new BitSet() {{
            // 直接在初始化块中写设位逻辑
            set(x);
            set(100);
        }});
    }
    
  • Java 9+ 内置静态方法构造
    如果使用Java 9及以上版本,可直接调用BitSet.valueOf()系列静态方法构造,但需要自行把要设置的位转换成对应字节/长整型数组,灵活度不如自定义工具方法。


内容的提问来源于stack exchange,提问作者pileup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:36:02