给定索引值处的BitSet值

时间:2017-09-12 10:57:45

标签: java

如果我在java中有BitSet,其值为{2,5,9,10,11}。如何获得索引2的值?或者给定指数的值。

我尝试使用get()函数但它只返回boolean值,无论该位是否已设置。

那么我们如何在数组中获取给定索引的值,在java中获取ArrayLists呢?

1 个答案:

答案 0 :(得分:0)

  

那么我们如何在java中的数组和数组列表中获取给定索引的值。?

你不能......在某种意义上你似乎意味着......而不是打破BitSet抽象。

BitSet 概念上一个灵活的位数组或真/假值。就API而言,“给定索引处的值”(如您所述)是设置的位(get(i)返回true)或未设置(get(i)返回true)。

您可能会对BitSet::toString生成的输出感到困惑,但这实际上是在BitSet中显示位设置的索引。

引擎盖BitSet(通常)表示为long[],但您无法通过BitSet API方法获取该数组。 (你可以使用讨厌的反射来打破抽象,但这是一个坏主意。如果你需要能够看到支持数组,你可能更好地实现自己的API “漏洞抽象”或特定于您的应用程序需求的方法。或者直接对long[]执行按位操作。)