Java多位/紧凑型小整数数组

标签 java data-structures bitset bloom-filter bitsets

我正在努力实现一些布隆过滤器变体,一个非常有用的数据结构将是一个紧凑的多位数组;也就是说,一个数组,其中每个元素都是大约 4 位的紧凑整数。

空间效率在这里是最重要的,所以虽然一个普通的整数数组可以提供我想要的功能,但它会比必要的更大。

在我尝试自己用位算术实现这个功能之前,我想知道是否有人知道那里已经提供了这种数据结构的库。

编辑:静态尺寸很好。 理想情况是在每个单元的位数方面灵活的实现。不过,这可能有点令人期待(不是双关语?)。

最佳答案

If you aren't modifying the array after creation, java.util.BitSet does all the bit masking for you but is slow to access since you have to fetch each bit individually and do the masking yourself to re-create the int from 4 bits.

话虽如此,自己编写可能是最好的方法。自己做位运算并不难,因为每个字节只有 2 个值,所以解码高位是 (array[i] & 0xF0) >> 4 低位是 array [i] & 0x0F

关于Java多位/紧凑型小整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345077/

相关文章:

java - OpenCV Android 图像路径

c++ - 使用 set 对 log(N) 进行排序?

java - 为什么不使用更具大小确定性的类型来实现 BitSet?

c++ - 在 C++ 中将 bitset 转换为 int

java - 从C++到Java的转换(在java中返回多个值)

java - 随机和图形代码太长

java - 程序类型已存在 : androidx. test.InstrumentationRegistry

java - 如何在VTK中显示模型的前、上、右、左、下、后?

java - 从随机的三元组字母表中猜一个词

c - 将表达式转换为后缀的程序