java.util.BitSet可以保存多于MAX_INT no。比特?

时间:2013-12-09 16:40:10

标签: java bitset

由于BitSet.get()函数使用int作为参数,我在想是否可以在BitSet中存储超过2 ^ 32位,如果是这样,我将如何检索它们?

我正在做一个Project Euler问题,我需要生成素数到10 ^ 10。我目前用于生成素数的算法是Erathonesus的Sieve,将布尔值存储为BitSet中的位。对此有何解决方法?

1 个答案:

答案 0 :(得分:3)

您可以将位集列表用作List<BitSet>,当达到一个位集的末尾时,您可以移动到下一个位集。

但是,我认为您的方法可能不正确。即使您为每个数字使用一个位,您也需要10^10位,大约1 GB个存储器(一个字节为8位,GB为1024 ^ 3个字节)。大多数项目欧拉问题应该是可以解决的,而不需要那么多的记忆。