Integer.MAX_VALUE 是 2^31 - 1,因此从 Integer.MAX_VALUE - 1000000 到 Integer.MAX_VALUE 的数共有 1000000 个。每个数需要用一个二进制位表示,因此需要的空间为 1000000 个二进制位,即 1000000 bits。

但是 Java 中的 BitSet 类并不是按照位来分配空间的,而是按照字节来分配空间的。因此,实际上需要的空间是 1000000 bits / 8 = 125000 bytes,或者更精确地说,需要 125000 字节 + 1 bit。这是因为 BitSet 类中的最后一个字节可能只用了其中的一些位,剩下的位会被忽略掉。

Java BitSet 空间需求:Integer.MAX_VALUE - 1000000 到 Integer.MAX_VALUE 范围

原文地址: https://www.cveoy.top/t/topic/lJNa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录