当前位置:网站首页>建立树形结构
建立树形结构
2022-08-03 04:35:00 【Dzooooone_】
//建立树形结构
public List<BasicMenuInfoVo> buildTree() {
List<BasicMenuInfoVo> treeMenus = new ArrayList<>();
for (BasicMenuInfoVo menuNode : getRootNode()) {
menuNode = buildChildTree(menuNode);
treeMenus.add(menuNode);
}
return treeMenus;
}
//获取根节点
private List<BasicMenuInfoVo> getRootNode() {
List<BasicMenuInfoVo> rootMenuLists = new ArrayList<>();
for (BasicMenuInfoVo menuNode : menuList) {
if (menuNode.getParentId().longValue() == 0) {
menuNode.setAccess(permissionMap.get(menuNode.getPermissionId()));
if (flag == 0) rootMenuLists.add(menuNode);
if (flag == 1 && menuNode.getState() == 1) rootMenuLists.add(menuNode);
}
}
return rootMenuLists;
}
//递归,建立子树形结构
private BasicMenuInfoVo buildChildTree(BasicMenuInfoVo pNode) {
List<BasicMenuInfoVo> childMenus = new ArrayList<>();
for (BasicMenuInfoVo menuNode : menuList) {
if (menuNode.getParentId().longValue() == pNode.getId().longValue()) {
menuNode.setAccess(permissionMap.get(menuNode.getPermissionId()));
if (flag == 0) childMenus.add(buildChildTree(menuNode));
if (flag == 1 && menuNode.getState() == 1) childMenus.add(buildChildTree(menuNode));
}
}
pNode.setRoutes(childMenus);
return pNode;
}
边栏推荐
猜你喜欢
Problems that need to be solved for interrupting the system
三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
Shenzhen Offline Registration|StarRocks on AWS: How to conduct rapid and unified analysis of real-time data warehouses
"Obs" start pushing flow failure: the Output. The StartStreamFailed call process
超好用的画图工具推荐
Assembly answers
社交电商:链动2+1模式,为什么能在电商行业生存那么久?
测试人员的价值体现在哪里
私域流量时代来临,电商企业如何布局?
StarRocks July Community Update
随机推荐
Mysql如何建立索引实现语句优化
StarRocks July Community Update
接口测试如何准备测试数据
Oracle EMCC可以独立安装吗?还是必须安装到数据库服务器上?
【Harmony OS】【FAQ】Hongmeng Questions Collection 1
c语言结构体中的冒泡排序
5.回顾简单的神经网络
刚上线就狂吸70W粉,新型商业模式“分享购”来了,你知道吗?
MySQL 出现 The table is full 的解决方法
【翻译】开发与生产中的Kubernetes修复成本对比
【软件工程之美 - 专栏笔记】35 | 版本发布:软件上线只是新的开始
汇编书摘抄
t conditional judgment statement and if loop
汇编题答案
三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
DC-4靶场搭建及渗透实战详细过程(DC靶场系列)
寄存器(内存访问)
Windows 安装PostgreSQL
计组错题集
软件开发的最大的区别是什么?