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-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南
- 2024-11-16MyBatisX资料:新手入门与初级教程
- 2024-11-16RESTful接口资料详解:新手入门指南
- 2024-11-16RESTful接口资料详解:新手入门教程
- 2024-11-16Spring Boot资料:新手入门与初级教程
- 2024-11-16Springboot资料:新手入门与初级教程