在 java 中创建特定长度的 BitSet

Creating a BitSet of specific length in java

我有一个函数,我想在其中执行 OR、AND、set 等操作。我首先想到了一个布尔数组,但问题是我无法对它们执行 AND 和 OR 操作(但是我可以将特定元素设置为 true)。我也尝试过使用 BiSet,但问题是 BitSet 的最小大小是 64(位)。我希望它存储特定数量的位(例如 15),稍后我可以从中迭代以获取它们的包含。在C#中,有BitArray Class 来处理这样的问题; Java好像没有这个。对此问题的任何建议将不胜感激

我认为你错了。 java.util.Bitset 允许任意位数;没有 "only > 64 bits" 限制。是的,bitset 可能在内部使用 long 值来存储这些位;但它没有说您只能使用 64 位、128 位等。

换句话说:当你设置一个15位的Bitset时,它会分配long[1]; 63 位相同;如果你需要 70 位,它会分配 long[2].

长话短说:这个 class 正是您要找的;而且我看不出任何其他实现的效率会大大提高。