Code Monkey home page Code Monkey logo

converttreex's Introduction

converttreex

权限树通用解决方案(增强) 将层级关系的表的数据转换成树 仅支持java8及以上,id不可重复

1.创建树

1.1普通使用

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据Listid字段名,父id字段名);

1.2注解使用

将@TreeId和@TreeFid分别注解在T的id字段和父id字段上

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据List);

2.树的CRUD

2.1查询节点

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据List);
//根据id获取节点
result.getNodeById(Object 节点的id);
//根据多个id获取节点列表
result.getNodeList(List<Object> 节点id列表);
//根据节点参数获取树节点
result.getTreeNode(T 节点数据)

2.2增加节点

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据List);
result.insertTreeNode(TreeNode<T> 父节点, T 新增节点数据);

2.3删除节点

注意:删除节点后,此节点的子节点会被一起删除

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据List);
//根据id删除节点
result.deleteTreeNode(Object 需要删除节点的id);
//删除指定树节点
result.deleteTreeNode(TreeNode<T> 需要删除的节点);

2.4修改节点

注意:如果需要添加子节点或者删除子节点,请使用上面的方法 注意:调用修改节点的方法之后,请使用方法返回的节点

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据List);
//根据id修改节点
result.updateTreeNode(Object 旧节点的id,TreeNode<T> 新的节点);

2.5节点的统一操作

ConvertTree<T> convertTree = new ConvertTree<>();
Tree<T> result= convertTree.getForest(数据List);
//以当前节点为树根,进行统一操作
result.forTree(TreeNode<T> 节点, Consumer<TreeNode<T>> lambda表达式);
//例如:获取这个节点下的所有子节点(包括此节点)
List<TreeNode<T>> node = new ArrayList<>();
result.forTree(treeRoot, node::add);

3.树节点的操作

注意:修改节点数据后,需要调用修改节点的方法

3.1获取节点id

treeNode.getId();

3.2获取节点数据

treeNode.getData();

3.3获取子节点

treeNode.getChildrenNode();

3.4追溯父节点Id

注意:父节点id有序,0:root-》finally:parentId

treeNode.getParentNode();

3.5 获取同级节点Id

注意:父节点id有序,0:root-》finally:parentId

treeNode.getPeerNode();

converttreex's People

Contributors

guoyixing avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.