maven dependency:

org.fusesource.leveldbjni

leveldbjni-all

1.8

测试代码实现, 很简单就不多阐述了.

package com.qshuai.singleton;

import org.iq80.leveldb.CompressionType;

import org.iq80.leveldb.DB;

import org.iq80.leveldb.DBIterator;

import org.iq80.leveldb.Options;

import java.io.File;

import java.io.IOException;

import static org.fusesource.leveldbjni.JniDBFactory.asString;

import static org.fusesource.leveldbjni.JniDBFactory.factory;

public class DBTest {

public static void main(String[] args) {

Options utxoOptions = new Options();

utxoOptions.createIfMissing(true);

utxoOptions.compressionType(CompressionType.SNAPPY);

utxoOptions.writeBufferSize(800 * 1048576); // 800MB cache for write buffer

utxoOptions.cacheSize(0);

DB ldb = null;

try {

ldb = factory.open(new File("testdb"), utxoOptions);

} catch (IOException e) {

e.printStackTrace();

}

// less value

ldb.put(("120000" + "00").getBytes(), new byte[2]);

String prefix = "120099";

ldb.put((prefix + "01").getBytes(), new byte[2]);

ldb.put((prefix + "02").getBytes(), new byte[2]);

ldb.put((prefix + "03").getBytes(), new byte[2]);

ldb.put((prefix + "04").getBytes(), new byte[2]);

ldb.put((prefix + "05").getBytes(), new byte[2]);

// great value

ldb.put(("999999" + "00").getBytes(), new byte[2]);

// [first target] to [the last]

System.out.println("[first target] to [the last]");

DBIterator iterator = ldb.iterator();

try {

for (iterator.seek(prefix.getBytes()); iterator.hasNext(); iterator.next()) {

String key = asString(iterator.peekNext().getKey());

String value = asString(iterator.peekNext().getValue());

System.out.println(key + " = " + value);

}

} finally {

}

// [first target] to [last target]

System.out.println("\n[first target] to [last target]");

DBIterator it = ldb.iterator();

try {

for (it.seek(prefix.getBytes()); it.hasNext(); it.next()) {

if (!equalPrefix(it.peekNext().getKey(), prefix.getBytes()))

break;

String key = asString(it.peekNext().getKey());

String value = asString(it.peekNext().getValue());

System.out.println(key + " = " + value);

}

} finally {

}

}

public static boolean equalPrefix(byte[] src, byte[] target) {

if (src.length < target.length)

return false;

for (int i = 0; i

if (src[i] != target[i])

return false;

}

return true;

}

}

java entries_Java leveldb遍历特定前缀的entries相关推荐

  1. java entries_Java ZipFile entries()用法及代码示例

    entries()函数是java.util.zip软件包的一部分.该函数返回zip文件的zip文件条目的枚举. 函数签名: public Enumeration entries() 用法: zip_f ...

  2. java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析

    Java list利用遍历进行删除操作3种方法解析 这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需 ...

  3. java中Map遍历的四种方式

    java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...

  4. java中Map遍历的三种方式

    Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...

  5. java for数组遍历数组_Java foreach操作(遍历)数组

    语法: 我们分别使用 for 和 foreach 语句来遍历数组 运行结果: 练习: import java.util.Arrays; public class HelloWorld { public ...

  6. [java] Map循环遍历的5种方法实现

    [java] Map循环遍历的5种方法实现 文章目录 一.方法一(推荐) 二.方法二(推荐) 三.方法三 四.方法四 五.方法五 总结 一.方法一(推荐) 推荐使用此方法效率比较高 Map<St ...

  7. Java几种遍历集合的方法(原理,复杂度,适用场合)

    目录 1. 顺序存储和链式存储 1.1 顺序存储 1.2 链式存储 1.3 区别 2. Java常用的遍历方式 2.1 for循环遍历 2.2 Iterator迭代器 2.3 foreach循环 3. ...

  8. pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns)

    pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns not begin wit ...

  9. pandas使用str函数和startswith函数,筛选dataframe中(start with)以特定前缀开头的数据列(selecting columns begin with certain

    pandas使用str函数和startswith函数,筛选dataframe中(start with)以特定前缀开头的数据列(selecting columns begin with certain ...

最新文章

  1. React as a UI Runtime(四、条件)
  2. Eureka和Zookeeper区别 —— 杂记
  3. 查看80端口连接状态
  4. html——inline、block与block-inline区别
  5. Hibernate之一对一映射
  6. Ajax的load方法
  7. 重写( override)and 重载(overload)
  8. 数字信号处理实验(MATLAB)
  9. 单片机通过wifi发送信息到服务器,怎么设计能让单片机通过wifi功能与手机数据交互...
  10. 【愚公系列】2022年01月 Django商城项目18-用户中心-密码修改功能页面设计
  11. w10打游戏老是弹出计算机,有效解决win10玩游戏弹出输入法的问题
  12. 转移操作和占用操作主机
  13. 举个例子解释下什么是线程不安全?
  14. 你想过自己注定是一个普通人吗?
  15. Android 9.0系统软件进入视频界面发生闪退
  16. 使用163邮箱发送邮件报错(554, b'DT:SPM 163 smtp3,G9xpCgCHi5RJOFVemMZ4Dw--.348S3 1582643274,please see http://ma
  17. C#时间格式转换问题(12小时制和24小时制)
  18. PAT甲级 1131 - Subway Map
  19. 深度学习狗图片_狗品种分类的深度学习
  20. python位置参数ppt_argparse模块的位置参数和可选(必选)参数

热门文章

  1. 系统变量file.encoding对Java的运行影响有多大?(转)good
  2. linux常用命令以及相关说明
  3. Android高级第九讲--JVM 与Android Dalvik之间的异同
  4. 50个不上你网站的理由
  5. Firefox浏览器中,input输入框输入的内容在刷新网页后为何还在?
  6. [面试专题]Web缓存详解
  7. Firefox 有 6 成用户仍使用 Add-On 扩展
  8. JMeter接口测试示例(六)——上传文件
  9. 车辆动力学基础(1)
  10. Symantec Backup Exec System Recovery简明安装手册