BitSet如何允许长度为6的长数组?

时间:2017-01-25 10:58:22

标签: java bitset

BitSet内部使用大小为6的长数组。

但它可以包含2 ^ 31-1位。

长= 64位

6 longs = 64 * 6.但是远小于2 ^ 31-1。请解释一下这个技巧。

1 个答案:

答案 0 :(得分:4)

存储值的内部数组会在必要时展开,就像ArrayList对对象一样。因此,您的陈述是错误的。

大小有2^31-1(位)的硬限制,但这只是因为操作(setflip等)取得了索引参数为int。对于大多数用例来说,这可能足够大了。