java.util.BitSet是否可以容纳超过最大整数位数的位?

java.util.BitSet是否可以容纳超过最大整数位数的位?,java,bitset,Java,Bitset,由于BitSet.get()函数使用int作为参数,我在考虑是否可以在BitSet中存储超过2^32位,如果可以,我将如何检索它们 我在做一个Euler问题,我需要生成素数直到10^10。我目前用来生成素数的算法是Erathonesus筛,它将布尔值作为位存储在一个位集中。有什么解决方法吗?您可以使用位集列表作为list,当到达一个位集的末尾时,可以移动到下一个位集 然而,我认为你的方法可能是错误的。即使您对每个数字使用单个位,您也需要10^10位,这大约是1GB内存(一个字节中有8位,一个GB

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


我在做一个Euler问题,我需要生成素数直到10^10。我目前用来生成素数的算法是Erathonesus筛,它将布尔值作为位存储在一个位集中。有什么解决方法吗?

您可以使用位集列表作为
list
,当到达一个位集的末尾时,可以移动到下一个位集


然而,我认为你的方法可能是错误的。即使您对每个数字使用单个位,您也需要
10^10
位,这大约是
1GB
内存(一个字节中有8位,一个GB中有1024^3字节)。大多数Project Euler问题都不需要太多内存就可以解决。

尝试使用“BigInteger.nextProbablePrime”。对我来说,它的工作方式和我期望的一样。埃拉托什尼的筛子不是用来寻找大素数的。我建议采用不同的方法。维基百科的条目推荐了伪平方素数筛。我正在做“带运行的素数”问题,第111号。我可能需要一个更好的主发电机。无论如何,谢谢你。