我正在尝试使用带符号的long作为1和0的数组。我需要能够在长时间内分配任何位,或者在长时间内读取任何位。我一直卡住,因为我似乎无法读取或写入符号位而不会弄乱其余的位(由于二进制补码)。我可以使用布尔数组来表示1和0,但这会占用太多内存。有没有人知道在长时间内单独读取和写入任何位的方法?或者任何人都可以建议一个超级内存有效的替代方案?
答案 0 :(得分:1)
对于此问题,BitSet是适当的库类。在内部,它使用long实现,如果需要增长使用BigInteger。有关详细信息,请阅读javadoc。
online java ide中的一些示例代码演示了如何使用BitSet。
https://www.codiva.io/p/f6f0ee80-2ad3-4fb6-a197-aa1e549fba80