Tag: b tree

将B树节点保留为RandomAccessFile

我的项目正在尝试编写B树。 我无法将树的节点保存到随机访问文件。 我经常遇到EOFexceptions和StreamCorruptionExceptions 。 我目前使用的一些资源是: 在java中将任何对象转换为字节数组 https://inaved-momin.blogspot.com/2012/08/understanding-javaiostreamcorruptedexce.html 当前问题:从节点读取链接位置然后尝试从随机访问文件中读取它会导致StreamCorruptionExceptions 。 目标:能够访问随机访问文件中的所有节点,修改并将其写回随机访问文件。 Test.java import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.RandomAccessFile; import java.util.ArrayList; public class Test { public static void main(String[] args) throws IOException, ClassNotFoundException { //JsoupTestStringManipulating(); //testAdd(); //testFindPredecessor(); //testDelete(); //testPrefexFind(); //testSave(); testSave2(); } public static void JsoupTestStringManipulating(){ JsoupParser pars = new JsoupParser(); […]

Java中Btree或B +树的现有实现

我正在做一个我需要btree或b + tree数据结构的项目。 有谁知道btree或b + tree的现有实现(带插入,删除,搜索算法)? 它应该接受字符串作为输入并形成这些字符串的btree或b + tree。

Java On-Memory高效键值存储

我存储了1.11亿个键值对(一个键可以有多个值 – 最大值为2/3),其键为50位整数,值为32位(最大值)整数。 现在,我的要求是: 快速插入(键,值)对[允许重复] 基于密钥快速检索值/值。 这里给出了一个很好的解决方案,基于MultiMap。 但是,我想在主内存中存储更多的键值对,没有/小的性能损失。 我从网络文章中研究过B + Tree,R + Tree,B Tree,Compact Multimap等可以很好地解决这个问题。 有谁能够帮助我: 是否有任何Java库可以满足我所有这些需求(上面提到/其他ds也可以接受。没有问题)? 实际上,我想要一个高效的java库数据结构来存储/检索键值/值对,这需要占用更少的内存,并且必须在内存中构建。 注意:我曾尝试使用路易斯·沃瑟曼,京都/东京内阁等提到的HashMultiMap(带有一些修改的番石榴)等。我的经验对于磁盘烘焙解决方案并不好。 所以请避免:)。 另一点是,为了选择库/ ds,一个重点是:密钥是50位(所以如果我们分配64位),14位将丢失,值为32位Int(最大) – 大多数是10-12-14位。 所以,我们也可以节省空间。