Java——list转树形结构

简介: Java——list转树形结构

比如省、市、县、区结构就是树形结构,主要解决思想是递归

public static List<Map> convertListToTree(List<Map> list, String parentColumn, String sonColumn) {
    List<Map> all = list.stream().filter(t ->
            !t.containsKey(sonColumn) || t.get(sonColumn) == null || StringUtils.isBlank(CommonUtils.objToString(t.get(sonColumn)))
    ).map((t) -> {
        t.put("children", getChildren(t, list, parentColumn, sonColumn));
        return t;
    }).collect(Collectors.toList());
    return all;
}
private static List<Map> getChildren(Map type, List<Map> all, String parentColumn, String sonColumn) {
    List<Map> children = all.stream().filter(t ->
            ((String) type.get(parentColumn)).equals((String) t.get(sonColumn))
    ).map((t) -> {
        t.put("children", getChildren(t, all, parentColumn, sonColumn));
        return t;
    }).collect(Collectors.toList());
    return children;
}

调用方式:

CommonUtils.convertListToTree(new ArrayList<>(cfxxList), "id", "parentId");
相关文章
|
4天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
7 0
|
4天前
|
存储 安全 Java
【JAVA基础篇教学】第八篇:Java中List详解说明
【JAVA基础篇教学】第八篇:Java中List详解说明
|
4天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
14天前
|
Java API
【亮剑】三种有效的方法来删除List中的重复元素Java的List
【4月更文挑战第30天】本文介绍了三种Java中删除List重复元素的方法:1) 使用HashSet,借助其不允许重复值的特性;2) 利用Java 8 Stream API的distinct()方法;3) 对自定义对象重写equals()和hashCode()。每种方法都附带了代码示例,帮助理解和应用。
|
1月前
|
Java
Java中拷贝list数组如何实现
Java中拷贝list数组如何实现
11 0
|
1月前
|
存储 Java API
java集合Collection(List)和泛型
java集合Collection(List)和泛型
|
1月前
|
Java
list集合 使用java8同一列表获取前一条的数据放到当前对象中
list集合 使用java8同一列表获取前一条的数据放到当前对象中
|
1月前
|
存储 安全 Java
Java集合详解(List、Map、Set)
Java集合详解(List、Map、Set)
34 4
|
2月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
1月前
|
Java
Java使用List去重的四中方式
Java使用List去重的四中方式
21 6