通过父节点id获取其子树,true表示要留有父节点,false表示不留不父节点
// 通过父节点id获取其子树,true表示要留有父节点,false表示不留不父节点
List<MenuVo> treeNodesList = TreeUtils.getTreeByNodeId(14, menus, true);
复制代码
运行结果
⑤ 遍历树的同时做自定义操作遍历树型结构的同时,做相应的自定义操作
找出部门名字含有或者b的部门名,存入结果集并返回
// 组装树形结构
List<MenuVo> menuVotree = TreeUtils.generateTrees(menusVoList);
// 遍历树,回调处理得出相应结果
Map<Integer, String> result = TreeUtils.traverseTree(menuVotree, (treeNode, resultMap) -> {
// 找出部门名字含有或者b的部门名,存入结果集并返回
if (treeNode.getName().contains("b")) {
resultMap.put(treeNode.getTreeNodeId(), treeNode.getName());
}
});
复制代码
运行结果
统计各个部门的子部门数
// 组装树形结构
List<MenuVo> menuVotree = TreeUtils.generateTrees(menusVoList);
// 遍历树,回调处理得出相应结果
Map<String, Integer> result = TreeUtils.traverseTree(menuVotree, (treeNode, resultMap) -> {
if (!treeNode.hasChild()){
if (treeNode.getName().contains("销售")){
resultMap.put("销售部", resultMap.get("销售部") == null ? 1 : resultMap.get("销售部") 1);
}
if (treeNode.getName().contains("财税")){
resultMap.put("财税部", resultMap.get("财税部") == null ? 1 : resultMap.get("财税部") 1);
}
if (treeNode.getName().contains("商务")){
resultMap.put("商务部", resultMap.get("商务部") == null ? 1 : resultMap.get("商务部") 1);
}
if (treeNode.getName().contains("综合")){
resultMap.put("综合部", resultMap.get("综合部") == null ? 1 : resultMap.get("综合部") 1);
}
}
});
复制代码
运行结果
作者:我是你下药都得不到的男人
链接:https://juejin.cn/post/7125354593982087199
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。