# BTree-Search-java8
**Repository Path**: hudl/BTree-Search-java8
## Basic Information
- **Project Name**: BTree-Search-java8
- **Description**: No description available
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-06-09
- **Last Updated**: 2024-04-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# BTree-Search-java8
简介
流式B-Tree搜索树,可以用来搜索树节点,本数据结构是基于Java8的stream实现的B-Tree数据结构
流式B-Tree搜索树基于流式(Stream)B-tree的搜索算法,采用后序遍历构造搜索完成后的“结果树”结构
使用哈希表存储树的路径关键字,并指向B-Tree的各个节点的引用地址,在对B-Tree进行插入、修改、删除时,通过
路径关键字查找到B-Tree的节点,进行数据更新,搜索性能较好
本数据结构暂时不提供英文的代码,因为我的英文还不够好, Mnzd是码农知道开源组织的作品
应用示例
jstree是一棵功能非常丰富的树形组件,但其在加载大量节点时,会有性能问题,和浏览器的渲染能力有关。
经过测试,我发现400个左右的节点性能响应比较好,但是如果挂载了大量的节点,浏览器会卡死。
所以,为jstree开发一个用于服务端搜索的数据结构很有必要。
流式B-Tree搜索树是码农知道推出的开源作品,代码非常精简,易于集成和改造。可以和任何的流行的框架集成,也可以封装成微服务供其他系统调用。
该项目采用的是Java 8的Stream编写B-Tree数据结构,用于服务端的树形组件节点查询、新增、修改和删除操作,性能优异,
是我在编了两天程序加三天测试后推出的开源作品。稳定性不错。
流式B-Tree搜索树可以和jstree.js无缝集成,因为我是基于jstree来开发搜索功能,该项目起源于我架构的一项目
(流式B-Tree搜索树已经和码农知道通用开发平台集成),因数据类型存在自身的多对多关系映射,并且数据量比较大,
所以开发了本程序。流式B-Tree搜索树也可以通过改造TreeModel的相关属性与其他的前端树形框架集成,
例如Ext Tree,jQuery Tree等,集成方法大同小异。
示例博客地址:http://www.cpudiy.com/archives/167.html
API
1、添加节点
TreeModel root = new TreeModel();
root.setText("张三");
root.setId("1");
root.setPath("1");
tree.addTreeNode(root);
2、删除节点
tree.removeTreeNode("1/3");
3、移动节点
tree.moveTreeNode("21", "李四儿子1","5","李世民");
4、修改节点
tree.updateTreeNode("4/41/21", "1/3", newNode);