|
@@ -8,8 +8,24 @@ import java.util.List;
|
|
import java.util.function.BiConsumer;
|
|
import java.util.function.BiConsumer;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * @author wangzaijun
|
|
|
|
+ * @date 2024/9/13 11:35
|
|
|
|
+ * @description 集合转树工具
|
|
|
|
+ */
|
|
public class TreeUtil {
|
|
public class TreeUtil {
|
|
- // list转树,不排序
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 集合对象转树结构,对象必须包含所需的树节点字段,不支持排序
|
|
|
|
+ *
|
|
|
|
+ * @param list 集合数据
|
|
|
|
+ * @param getId 从对象T中获取id字段的方法
|
|
|
|
+ * @param getParentId 从对象T中获取pid字段的方法
|
|
|
|
+ * @param getChildren 从对象T中获取children字段的方法
|
|
|
|
+ * @param setChildren 从对象T中设置children字段的方法
|
|
|
|
+ * @param root 根节点的id值
|
|
|
|
+ * @param <T> 对象类型
|
|
|
|
+ * @return 转换后的树结构
|
|
|
|
+ */
|
|
public static <T> List<T> list2Tree(List<T> list,
|
|
public static <T> List<T> list2Tree(List<T> list,
|
|
Function<T, Serializable> getId,
|
|
Function<T, Serializable> getId,
|
|
Function<T, Serializable> getParentId,
|
|
Function<T, Serializable> getParentId,
|
|
@@ -19,7 +35,19 @@ public class TreeUtil {
|
|
return list2Tree(list, getId, getParentId, getChildren, setChildren, root, null);
|
|
return list2Tree(list, getId, getParentId, getChildren, setChildren, root, null);
|
|
}
|
|
}
|
|
|
|
|
|
- // list转树,可排序
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 集合对象转树结构,对象必须包含所需的树节点字段,支持排序
|
|
|
|
+ *
|
|
|
|
+ * @param list 集合数据
|
|
|
|
+ * @param getId 从对象T中获取id字段的方法
|
|
|
|
+ * @param getParentId 从对象T中获取pid字段的方法
|
|
|
|
+ * @param getChildren 从对象T中获取children字段的方法
|
|
|
|
+ * @param setChildren 从对象T中设置children字段的方法
|
|
|
|
+ * @param root 根节点的id值
|
|
|
|
+ * @param getOrder 排序方法
|
|
|
|
+ * @param <T> 对象类型
|
|
|
|
+ * @return 转换后的树结构
|
|
|
|
+ */
|
|
public static <T> List<T> list2Tree(List<T> list,
|
|
public static <T> List<T> list2Tree(List<T> list,
|
|
Function<T, Serializable> getId,
|
|
Function<T, Serializable> getId,
|
|
Function<T, Serializable> getParentId,
|
|
Function<T, Serializable> getParentId,
|