Class BeanTree<T,R extends Comparable<R>>

java.lang.Object
org.miaixz.bus.core.tree.BeanTree<T,R>
Type Parameters:
T - Bean类型
R - 主键、外键类型

public class BeanTree<T,R extends Comparable<R>> extends Object
本类是用于构建树的工具类,特点是采取lambda,以及满足指定类型的Bean进行树操作 Bean需要满足三个属性:
  • 包含不为null的主键(例如id)
  • 包含容许为null的关联外键(例如parentId)
  • 包含自身的子集,例如类型为List的children
本类的构建方法是通过BeanTree.of 进行构建,例如:

 final BeanTree beanTree = BeanTree.of(JavaBean::getId, JavaBean::getParentId, null, JavaBean::getChildren,
         JavaBean::setChildren);
 
得到的BeanTree实例可以调用toTree方法,将集合转换为树,例如:

 final List<JavaBean> javaBeanTree = beanTree.toTree(originJavaBeanList);
 
也可以将已有的树转换为集合,例如:

 final List<JavaBean> javaBeanList = beanTree.flat(originJavaBeanTree);
 

最后,引用一句电影经典台词: 无处安放的双手,以及无处安放的灵魂。《Hello!树先生》

Since:
Java 17+
Author:
Kimi Liu