java - Bitset size() 和 length() 是什么意思,它们之间有什么区别?

标签 java bitset

不太明白BitSetsize()length()的不同含义。检查下面的代码:

public class Sandbox {

   public static void main(String argv[]) 
   {
       BitSet bitSet1 = new BitSet(16);
       bitSet1.set(0);
       bitSet1.set(8);
       bitSet1.set(15);
       displayBitSet(bitSet1);
       
    
 
   }
   
   static void displayBitSet(BitSet bitSet)
   {
       for(int i=0;i<bitSet.size();i++)
       {
           boolean bit = bitSet.get(i);
           System.out.print(bit?1:0);
       }
       System.out.println(" "+bitSet.size()+" "+bitSet.length());
   }
 
}

输出是:

1000000010000001000000000000000000000000000000000000000000000000 64 16

我以为我会得到类似的东西

1000000010000001 16 16

这些尾随零从何而来?谁可以给我解释一下这个?谢谢~~

最佳答案

答案很简单,BitSet 构造函数只是说它会生成足够大的给定大小的东西,实际上它需要一些最匹配的内部大小。

在您的情况下,这是 64 位,请参阅 JavaDoc

关于java - Bitset size() 和 length() 是什么意思,它们之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13245981/

相关文章:

Java Bitset - “Not Thread-Safe” 的完整含义是什么

java - Scala 枚举 ValueSet.isEmpty 慢

java - Tomcat不重新部署修改JSP?

Java BitSet 和 byte[] 用法

c++ - 尝试翻转 std::bitset 中的位顺序

C++ 位集没有内联?

java - 如何处理 JDBC 中的 VARRAY (Oracle 9i)?

java - 比较器 reversed() 导致编译器错误

java - 根据最常用的顺序显示 Android 手机中的图像

java - Java 循环中的用户输入和求和问题