在java

时间:2016-07-21 12:25:38

标签: java c# bitset

我有一个函数,我想在其中执行OR,AND,set等操作。我首先考虑了一个布尔数组,但问题是我无法对它们执行AND和OR运算(但我可以将特定元素设置为true)。我也试过使用BiSet,但问题是BitSet的最小尺寸是64(位)。我希望它存储一个特定数量的位(例如15个),我可以从中迭代以获取它们的包含。在C#中,有BitArray类来处理这样的问题; Java似乎没有这样的。任何有关此问题的建议都将受到高度赞赏

1 个答案:

答案 0 :(得分:5)

我认为你错了。 java.util.Bitset允许任意数量的位;没有“仅> 64位”限制。是的,bitset可能在内部使用长值来存储这些位;但没有任何地方说你只能使用64位,128位等。

换句话说:当您设置15位的位集时,它将分配long[1];相同的63位;如果你需要70位,它将分配long[2]

长话短说:这门课正是你要找的;我没有看到任何其他实施可能会大大提高效率。