Java から JNI 経由でLevelDB を使用しています。
数値(整数)キーを指定し、そのキーの順序でデータベースを反復できるようにしたいと考えています。私が苦労しているのは、LevelDbのデフォルトのコンパレータが実際にどのように機能するか、およびデフォルトのコンパレータがbyte[]
それによって正しく順序付けられるように int を a にエンコードする方法を理解することですint
。
LevelDb ドコには次のように記載されています。
前の例では、key のデフォルトの順序付け関数を使用しました。これは、辞書順でバイトを順序付けます。
私はグーグルで検索しましたが、辞書順に並べられたバイトint
に実際にエンコードする方法に困惑していますか?
注: 独自のコンパレーターを提供すると、すべての比較で JNI 境界を前後にジャンプする必要があるため、反復時間が約 2 倍になるため、そうしたくありません。