我用的是LevelDB 从爪哇经JNI。
我希望提供一个数字(整数)键,并能够按该键的顺序迭代db。我遇到困难的地方是理解LevelDb的默认比较器是如何工作的,以及如何将int编码到byte[]中,从而使默认的比较器按照该int正确排序。
LevelDb文档声明:
前面的示例使用了键的默认排序函数,该函数按字母顺序排列字节。
我已经在谷歌上搜索过,但是对于如何将int编码成按顺序排列的字节,我感到很困惑。
注意:如果我提供我自己的比较器,它大约是迭代时间的两倍,因为现在所有的比较都必须在JNI边界上来回跳,所以我不想这样做。
发布于 2014-05-08 06:33:33
此编码工作:
public synchronized static byte[] encode(int key) {
encoded[0] = (byte)(key >> 24);
encoded[1] = (byte)(key >> 16);
encoded[2] = (byte)(key >> 8);
encoded[3] = (byte)(key);
return encoded;
}https://stackoverflow.com/questions/23532591
复制相似问题