JAVA把list构建成树结构

    技术2022-07-10  158

    可以当成一个工具类

    实体类 TreeNode

    public class TreeNode { private String key; private String code; private String title; private String parentKey; private List<TreeNode> children; //... getter setter 省略 }

    建树的方法 bulidTree

    public <T extends TreeNode> List<T> bulidTree(List<T> list) { Map<String, T> map = new HashMap<String, T>(256); List<T> trees = new ArrayList<>(); for (T t:list) { map.put(t.getKey(),t); } for (T t : list) { T parent = map.get(t.getParentKey()); if (parent!=null) { List<T> children = (List<T>) parent.getChildren(); if(children==null){ children = new ArrayList<>(); } children.add(t); parent.setChildren((List<TreeNode>) children); } else { trees.add(t); } } return trees; }
    Processed: 0.018, SQL: 9