list集合和树状之间的相互转换

    xiaoxiao2022-07-13  148

    普通list转树状list

    public static List<User> list2tree(List<User> list) { List<User> result = new ArrayList<>(); Map<Object, User> hash = list.stream().collect(Collectors.toMap(u -> u.getId(), u -> u)); for (User u : list) { User p = hash.get(u.getParent()); if (p == null) { result.add(u); } else { if (p.getChildren() == null) { p.setChildren(new ArrayList<>()); } p.getChildren().add(u); } } return result; }

    树状list转普通list

    public static List<User> tree2list(List<User> list) { List<User> result = new ArrayList<>(); for (User u : list) { List<User> c = u.getChildren(); result.add(u); if (!CollectionUtils.isEmpty(c)) { result.addAll(tree2list(c)); u.setChildren(null);// } } return result; }

    list的其他应用:https://pingzhengguo.blog.csdn.net/article/details/86569380 (类型转换,排序,分组)                         https://pingzhengguo.blog.csdn.net/article/details/86540899(list的最大,最小,求和,平均)                         https://pingzhengguo.blog.csdn.net/article/details/86571528 (去重和提取重复元素)                         https://pingzhengguo.blog.csdn.net/article/details/88990352(list集合的分页问题)

     

     

     

    最新回复(0)