gpt4 book ai didi

java - LevelDB 的默认比较器

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:44 26 4
gpt4 key购买 nike

我正在使用 LevelDB from Java via JNI .

我想提供一个数字(整数)键,并能够按照该键的顺序迭代数据库。我遇到困难的地方是理解 LevelDb 的默认比较器实际上是如何工作的,以及我如何将 int 编码为 byte[]。这将使默认比较器按 int 正确排序.

LevelDb doco 指出:

The preceding examples used the default ordering function for key, which orders bytes lexicographically.

我在谷歌上搜索过,但对如何实际编码 int 感到困惑成按字典顺序排列的字节

注意:如果我提供自己的比较器,它大约会使迭代时间加倍,因为现在所有比较都必须在 JNI 边界上来回跳转,所以我不想这样做。

最佳答案

这种编码有效:

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;
}

关于java - LevelDB 的默认比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23532591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com