4

我需要使用 BitSet 表示一个整数数组。有人可以解释一下这样做所需的逻辑吗?

4

3 回答 3

4

您可以使用 表示一整数BitSet,但不能表示任意数组。您将丢失有关顺序和重复的信息。

基本上,设置如果且仅当出现在您的整数集中的n第 th 位。BitSetn

BitSet bitSet = new BitSet();
int[] setOfInts = new int[] { /* Your array here */ };
for (int n : setOfInts) {
   bitSet.set(n);
}
于 2010-05-26T06:34:08.807 回答
0

第一个想法:
使用 BigInteger 并像这样创建它:new BigInteger(int value, int base)。然后您可以 toString() 它,然后使用该字符串创建 BitSet(但是不分析字符串不知道该怎么做)。
——
没看错。该方法仅帮助您创建 BitSet 数组,而不是包含整个数组的整个 BitSet。
我不知道如何将整数数组制作为一个 bitSet。我想你需要某种分隔符,但是如何用二进制制作好的分隔符——这是一个很好的问题。

于 2010-05-26T06:32:33.147 回答
0

我认为逻辑是:遍历整数数组,测试每个位并在位集中设置该位,如 bitset.set(array_pos+bit_pos)

于 2010-05-26T06:33:07.513 回答