编程语言
首页 > 编程语言> > Java 递归遍历多个顶级节点tree

Java 递归遍历多个顶级节点tree

作者:互联网

Java 递归遍历多个顶级节点tree

引用外部依赖

			<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <guava.version>18.0</guava.version>
   		</dependency>
注释: 版本随意.只需要有 ArrayListMultimap 一个key 对应多个values 即可  
也可以自己写一个 Map<Integer,List<String>> levelmap=new HashMap<Integer,List<String>>();

代码:

 /**
     * 递归获取树层结构
     */
    public List<latestObject> recursionTransition(List<object> primaryObject, Integer topNode) {
    	// 自定义的 bean 复制对象 ( 可以自己写一个  就是把原来的对象 复制到新的对象里面,
    	//  其实就是多个一个 list<latestObject> 的参数 可以进行递归节点操作 )
        List<latestObject> latestObjectList = BeanCopierUtil.copyBeanList(primaryObject, latestObject.class);
        // 创建一个 一个key 多个value 的这个对象
        ArrayListMultimap<Integer, latestObject> multiMap = ArrayListMultimap.create();
        List<latestObject> latestObjectListA = new ArrayList<>();
        latestObjectList.forEach(latestObject-> {
            multiMap.put(latestObject.getParentId(), latestObject);
            if (latestObject.getParentId().equals(parentId)) {
                latestObjectListA .add(latestObject);
            }
        });

        regionalLevel(multiMap, menuListVOList1, parentId);

        return latestObjectListA;
    }

    /**
     * 递归遍历对象
     */
    public void regionalLevel(ArrayListMultimap<Integer, latestObject> multiMap, List<latestObject> latestObjectListA ,,Integer id) {
        latestObjectListA .forEach(latestObject-> {
            List<latestObject> latestObjectList = multiMap.get(id);
            if (!CollectionUtils.isEmpty(latestObjectList)) {
                if (latestObject.getId().equals(id)) {
                    latestObject.setMenuListVOList(latestObjectList );
                } 
                   regionalLevel(multiMap, latestObjectListA, latestObject.getId());
            }
        });
    }

标签:遍历,Java,递归,latestObjectList,List,tree,multiMap,latestObjectListA,latestObject
来源: https://blog.csdn.net/weixin_43881778/article/details/119002629