publicList<User>listToTree1(){List<User> list =list();List<User> tree =newArrayList<>();for(User user : list){//找到根节点if(user.getParentId()==null|| user.getParentId().equals(0L)){
tree.add(user);}List<User> children =newArrayList<>();//再次遍历list,找到user的子节点for(User node : list){if(node.getParentId().equals(user.getId())){
children.add(node);}}
user.setChildren(children);}return tree;}
for循环list建立树形图(MAP)伪代码
//首先将获取到的List数据转换为Map集合List userList=newArrayList<>();Map<String,User> map = userList.stream().collect(Collectors.toMap(User::getId,User->User));//便利集合,进行匹配
map.forEach((k,v)->{//如果根据pid能改查询到对应对象,证明存在父级,将该对象add进子级集合User user = map.get(v.getPid());if(user!=null){
user.getChildren().add(user);}});