如何获得Bitset的实际长度?

时间:2016-11-24 12:28:30

标签: java bitset

我在JavaDoc上读到了BitSet类的size()和length()函数,我理解它们背后的逻辑。

但是我需要一个函数来返回BitSet的实际大小(我插入的位数)。例如,下面的代码结果为0和64,但我需要一个返回5的函数。

  $(document).ready(function() {
        $( "#mytable tbody" ).on( "click", "tr", function() {
            if($(this).hasClass('active'))
            {
              $(this).removeClass('active');
              $(this).find('input').removeClass('active');
            }
            else
             {
             $(this).addClass('active');
             $(this).find('input').addClass('active');
            }
        });
});

1 个答案:

答案 0 :(得分:2)

BitSet有3种方法描述其状态(长度和设置位)。

  1. length - 返回此BitSet的“逻辑大小”:BitSet中最高设置位的索引加1。
  2. size - 返回此BitSet实际使用的空间位数,以表示位值。
  3. cardinality - 返回此BitSet中设置为true的位数。
  4. 如果需要跟踪设置位数cardinality,方法就是答案。请注意,它仅跟踪 true位。

    如果您需要跟踪set的任何调用,最简单的解决方案是使用另一个计数器变量。所以你可以创建一个包装类或者扩展BitSet(这可能不是最好的解决方案)。无论如何,在这种情况下你必须手工完成。

    我的猜测是,您认为可以将BitSet视为Listcapacitysize BitSet} size和{{{}} 1}} - 列表中的实际元素数。但是对于BitSet只有true位才有意义。