This commit is contained in:
Looly 2024-10-02 13:39:59 +08:00
parent fbc14c86bf
commit 3e79778272

View File

@ -34,6 +34,8 @@ import java.util.function.Function;
*/
public class TreeUtil {
// region ----- build
/**
* 构建单root节点树
*
@ -83,7 +85,7 @@ public class TreeUtil {
/**
* 构建单root节点树<br>
* 它会生成一个以指定ID为ID的空的节点然后逐级增加子节点
* 它会将指定Id的节点作为根节点如果这个节点不存在则创建一个空节点然后逐级增加子节点
*
* @param <T> 转换的实体 为数据源里的对象类型
* @param <E> ID类型
@ -98,7 +100,8 @@ public class TreeUtil {
}
/**
* 树构建
* 树构建<br>
* 你所有节点的ID都不应该重复那你要构建一个列表形式的树结构指定的这个rootId应该是首层节点的parentId而非某个节点的id
*
* @param <T> 转换的实体 为数据源里的对象类型
* @param <E> ID类型
@ -112,7 +115,8 @@ public class TreeUtil {
}
/**
* 树构建
* 树构建<br>
* 你所有节点的ID都不应该重复那你要构建一个列表形式的树结构指定的这个rootId应该是首层节点的parentId而非某个节点的id
*
* @param <T> 转换的实体 为数据源里的对象类型
* @param <E> ID类型
@ -178,6 +182,7 @@ public class TreeUtil {
return createEmptyNode(rootId);
}
// endregion
/**
* 获取ID对应的节点如果有多个ID相同的节点只返回第一个<br>
@ -272,7 +277,7 @@ public class TreeUtil {
while (null != parent) {
fieldValue = fieldFunc.apply(parent);
parent = parent.getParent();
if(null != fieldValue || null != parent){
if (null != fieldValue || null != parent) {
// issue#I795IN根节点的null不加入
result.add(fieldValue);
}
@ -285,16 +290,16 @@ public class TreeUtil {
*
* <p>
* 比如有个人在研发1部他上面有研发部接着上面有技术中心<br>
parent = parent.getParent();) {
if(null != id || null != parent){
// issue#I795IN根节点的null不加入
result.add(fieldFunc.apply(parent));
}
}
return result;
}
/**
* parent = parent.getParent();) {
* if(null != id || null != parent){
* // issue#I795IN根节点的null不加入
* result.add(fieldFunc.apply(parent));
* }
* }
* return result;
* }
* <p>
* /**
* 创建空Tree的节点
*
* @param id 节点ID