如何将值传递给BitSet类并创建包含BitSet值的列表?

Jav*_*its 0 java

问题:为什么输出正在返回{}.

  • List<BitSet> list = new ArrayList<BitSet>();
    list.add(new BitSet(00010010));
    list.add(new BitSet(10000001));
    list.add(new BitSet(01000001));
    System.out.println(test.orTogether(list));
    
    Run Code Online (Sandbox Code Playgroud)

无法将值传递给方法.该列表包含[{},{},{}].

Mar*_*aux 6

问题是构造public BitSet(int)函数不会占用位,而是要存储的位数.所以,内容仍然是空的......

要设置位,您可以创建一个额外的方法:

public BitSet createBitSet(String bits)
{
    int len = bits.length();
    BitSet bs = new BitSet(len);
    for (int i = 0; i < len; i++)
    {
        bs.set(len - i - 1, bits.charAt(i) == '1');
    }
    return bs;
}
Run Code Online (Sandbox Code Playgroud)

然后:

list.add(createBitSet("00010011"));
Run Code Online (Sandbox Code Playgroud)

(我没有测试方法,所以它们可能有些错误...)