簡體   English   中英

如何獲得Bitset的真實長度?

[英]How get real length of Bitset?

我了解了JavaDoc上BitSet類的size()和length()函數,並且了解它們背​​后的邏輯。

但是我需要一個函數,該函數返回BitSet的實際大小 (我插入其中的位數)。 例如下面的代碼導致0和64,但是我需要一個返回5的函數。

BitSet test = new BitSet(10);
for (int i = 0; i < 5; i++) {
    test.set(i, false);
}
System.out.println("len = " + test.length());
System.out.println("size = " + test.size());

BitSet具有3種描述其狀態的方法(從長度和設置位的角度)。

  1. length返回此BitSet的“邏輯大小”:BitSet中最高設置位的索引加1。
  2. size返回此BitSet實際使用的表示位值的空間位數。
  3. cardinality -返回在此BitSet中設置為true的位數。

如果需要跟蹤設置位數的cardinality方法就是答案。 請注意,它跟蹤true位。

如果需要跟蹤set的任何調用,最簡單的解決方案是擁有另一個計數器變量。 因此,您可以創建包裝器類,也可以擴展BitSet (這可能不是最佳解決方案)。 無論如何,在這種情況下,您必須手動操作。

我的猜測是,你以為你可以把BitSetList或者你有什么capacitysizeBitSet的情況下)和size -列表中元素的實際數量。 但是對於BitSet只有true位才有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM