树形结构转换工具类TreeUtils
@Slf4j
public class TreeUtils {
/**
* 集合转树结构
*
* @param collection 目标集合
* @param clazz 集合元素类型
* @return 转换后的树形结构
*/
public static <T> Collection<T> toTree(@NotNull Collection<T> collection, @NotNull Class<T> clazz) {
return toTree(collection, null, null, null, clazz);
}
/**
* 集合转树结构
*
* @param collection 目标集合
* @param id 节点编号字段名称
* @param parent 父节点编号字段名称
* @param children 子节点集合属性名称
* @param clazz 集合元素类型
* @return 转换后的树形结构
*/
public static <T> Collection<T> toTree(@NotNull Collection<T> collection, String id, String parent, String children, @NotNull Class<T> clazz) {
try {
if (CollectionUtils.isEmpty(collection)) {
// 如果目标集合为空,直接返回一个空树
return null;
}
if (StringUtils.isEmpty(id)) {
// 如果被依赖字段名称为空则默认为id
id = "id";
}
if (StringUtils