工具类

树形结构转换工具类TreeUtils

2022-01-30  本文已影响0人  fanderboy

@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

上一篇下一篇

猜你喜欢

热点阅读