java entries_Java leveldb遍历特定前缀的entries
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相关推荐
- java entries_Java ZipFile entries()用法及代码示例
entries()函数是java.util.zip软件包的一部分.该函数返回zip文件的zip文件条目的枚举. 函数签名: public Enumeration entries() 用法: zip_f ...
- java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析
Java list利用遍历进行删除操作3种方法解析 这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需 ...
- java中Map遍历的四种方式
java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...
- java中Map遍历的三种方式
Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...
- java for数组遍历数组_Java foreach操作(遍历)数组
语法: 我们分别使用 for 和 foreach 语句来遍历数组 运行结果: 练习: import java.util.Arrays; public class HelloWorld { public ...
- [java] Map循环遍历的5种方法实现
[java] Map循环遍历的5种方法实现 文章目录 一.方法一(推荐) 二.方法二(推荐) 三.方法三 四.方法四 五.方法五 总结 一.方法一(推荐) 推荐使用此方法效率比较高 Map<St ...
- Java几种遍历集合的方法(原理,复杂度,适用场合)
目录 1. 顺序存储和链式存储 1.1 顺序存储 1.2 链式存储 1.3 区别 2. Java常用的遍历方式 2.1 for循环遍历 2.2 Iterator迭代器 2.3 foreach循环 3. ...
- pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns)
pandas使用str函数和startswith函数,筛选dataframe中不是(not start with)以特定前缀开头的数据列(selecting columns not begin wit ...
- pandas使用str函数和startswith函数,筛选dataframe中(start with)以特定前缀开头的数据列(selecting columns begin with certain
pandas使用str函数和startswith函数,筛选dataframe中(start with)以特定前缀开头的数据列(selecting columns begin with certain ...
最新文章
- React as a UI Runtime(四、条件)
- Eureka和Zookeeper区别 —— 杂记
- 查看80端口连接状态
- html——inline、block与block-inline区别
- Hibernate之一对一映射
- Ajax的load方法
- 重写( override)and 重载(overload)
- 数字信号处理实验(MATLAB)
- 单片机通过wifi发送信息到服务器,怎么设计能让单片机通过wifi功能与手机数据交互...
- 【愚公系列】2022年01月 Django商城项目18-用户中心-密码修改功能页面设计
- w10打游戏老是弹出计算机,有效解决win10玩游戏弹出输入法的问题
- 转移操作和占用操作主机
- 举个例子解释下什么是线程不安全?
- 你想过自己注定是一个普通人吗?
- Android 9.0系统软件进入视频界面发生闪退
- 使用163邮箱发送邮件报错(554, b'DT:SPM 163 smtp3,G9xpCgCHi5RJOFVemMZ4Dw--.348S3 1582643274,please see http://ma
- C#时间格式转换问题(12小时制和24小时制)
- PAT甲级 1131 - Subway Map
- 深度学习狗图片_狗品种分类的深度学习
- python位置参数ppt_argparse模块的位置参数和可选(必选)参数
热门文章
- 系统变量file.encoding对Java的运行影响有多大?(转)good
- linux常用命令以及相关说明
- Android高级第九讲--JVM 与Android Dalvik之间的异同
- 50个不上你网站的理由
- Firefox浏览器中,input输入框输入的内容在刷新网页后为何还在?
- [面试专题]Web缓存详解
- Firefox 有 6 成用户仍使用 Add-On 扩展
- JMeter接口测试示例(六)——上传文件
- 车辆动力学基础(1)
- Symantec Backup Exec System Recovery简明安装手册