Java 递归遍历多个顶级节点tree
2021/7/22 17:06:07
本文主要是介绍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 递归遍历多个顶级节点tree的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26大厂数据结构与算法教程:入门级详解
- 2024-12-26大厂算法与数据结构教程:新手入门指南
- 2024-12-26Python编程入门指南
- 2024-12-26数据结构高级教程:新手入门及初级提升指南
- 2024-12-26并查集入门教程:从零开始学会并查集
- 2024-12-26大厂数据结构与算法入门指南
- 2024-12-26大厂算法与数据结构入门教程
- 2024-12-26二叉树入门教程:轻松掌握基础概念与操作
- 2024-12-26初学者指南:轻松掌握链表
- 2024-12-26平衡树入门教程:轻松理解与应用