Java遞歸以及根據(jù)節(jié)點(diǎn)取子集合方式
Java遞歸以及根據(jù)節(jié)點(diǎn)取子集合
1.示例
//遞歸樹形
private List<DeptVO> getDeptTree(List<DeptVO> childList, List<DeptVO> parentList) {
for (DeptVO p : parentList) {
List<DeptVO> twoLevelMenuTree = childList.stream()
.filter(s -> Objects.equals(s.getUpDeptId(), p.getDeptId()))
.collect(Collectors.toList());
if (twoLevelMenuTree.size() > 0) {
p.setChildren(twoLevelMenuTree);
getDeptTree(childList, twoLevelMenuTree);
}
}
return parentList;
}2.遞歸參數(shù)解釋
以上childList為所有數(shù)據(jù)的集合,parentList為最高節(jié)點(diǎn)的數(shù)據(jù),這里是根據(jù)子節(jié)點(diǎn)的上級部門id等于父節(jié)點(diǎn)部門id做聯(lián)系形成樹形結(jié)構(gòu)。
3.反向遞歸(取到子節(jié)點(diǎn)的所有子節(jié)點(diǎn))
public void getChildrenByTree(DeptVO result, List<DeptVO> children, String deptId) {
if (result == null) {
return;
}
if (result.getDeptId().equals(deptId)) {
if (result.getChildren() != null) {
children.addAll(result.getChildren());
return;
}
}
if (result.getChildren() != null) {
for (DeptVO child : result.getChildren()) {
getChildrenByTree(child, children, deptId);
}
}
}
4.反向遞歸參數(shù)解釋
result是頂級父節(jié)點(diǎn)的數(shù)據(jù)(包含所有子節(jié)點(diǎn)),children是一個用來接收子節(jié)點(diǎn)數(shù)據(jù)的集合,使用時創(chuàng)建一個空的list傳進(jìn)方法即可,deptId即為需要查找所有子節(jié)點(diǎn)的父節(jié)點(diǎn)的id。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java并發(fā)學(xué)習(xí)之BlockingQueue實現(xiàn)生產(chǎn)者消費(fèi)者詳解
這篇文章主要介紹了java并發(fā)學(xué)習(xí)之BlockingQueue實現(xiàn)生產(chǎn)者消費(fèi)者詳解,具有一定參考價值,需要的朋友可以了解下。2017-11-11
MyBatisPlus靜態(tài)工具Db的實現(xiàn)方法
Db是MyBatis-Plus3.5.4+提供的靜態(tài)工具類,無需注入Service或Mapper,直接通過靜態(tài)方法操作數(shù)據(jù)庫,本文就來詳細(xì)的介紹一下MyBatisPlus靜態(tài)工具Db的實現(xiàn),感興趣的可以了解一下2026-03-03
輕松理解Java面試和開發(fā)中的IoC(控制反轉(zhuǎn))
在Java開發(fā)中,IoC意 味著將你設(shè)計好的類交給系統(tǒng)去控制,而不是在你的類內(nèi)部控制。這稱為控制反轉(zhuǎn)。下文給大家介紹Java面試和開發(fā)中的IoC(控制反轉(zhuǎn))知識,需要的朋友參考下吧2017-07-07
java簡單實現(xiàn)用語音讀txt文檔方法總結(jié)
在本篇文章里小編給大家整理了關(guān)于java簡單實現(xiàn)用語音讀txt文檔的詳細(xì)方法總結(jié),有需要的朋友們參考下。2019-06-06
java讀取文件:char的ASCII碼值=65279,顯示是一個空字符的解決
這篇文章主要介紹了java讀取文件:char的ASCII碼值=65279,顯示是一個空字符的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

