1. 雙重循環(huán)
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、同仁網(wǎng)站維護、網(wǎng)站推廣。2. 遞歸
3. Stream()
1. 雙重循環(huán)
@Override
public ListgetAddressTree1() {// 獲取數(shù)據(jù)庫中的所有address數(shù)據(jù)
Listlist = this.baseMapper.getAddressTree();
// 返回的樹形數(shù)據(jù)
Listtree = new ArrayList();
// 第一次遍歷
for (Address address : list) { // 找到根節(jié)點,這里我的根節(jié)點的pid為0
if (address.getPid().equals("0")) { tree.add(address);
}
// 定義list用于存儲子節(jié)點
Listchildren = new ArrayList();
// 再次遍歷list,找到子節(jié)點
for (Address node : list) { // 子節(jié)點的pid等于父節(jié)點的id
if (node.getPid().equals(address.getId())) {children.add(node);
}
}
// 給父節(jié)點設(shè)置子節(jié)點
address.setChildren(children);
}
return tree;
}
2. 遞歸
@Override
public ListgetAddressTree2() {// 獲取數(shù)據(jù)庫中的所有address數(shù)據(jù)
Listlist = this.baseMapper.getAddressTree();
// 返回的樹形數(shù)據(jù)
Listtree = new ArrayList();
// 第一次遍歷
for (Address address : list) {// 找到根節(jié)點,這里我的根節(jié)點的pid為0
if (address.getPid().equals("0")) {tree.add(findChild(address, list));
}
}
return tree;
}
private Address findChild(Address address, Listlist) {// 定義list用于存儲子節(jié)點
Listchildren = new ArrayList();
for (Address node : list) {// 找到根節(jié)點,這里我的根節(jié)點的pid為0
if (node.getPid().equals(address.getId())) {// 調(diào)用遞歸
children.add(findChild(node, list));
}
}
address.setChildren(children);
return address;
}
3. Stream()
@Override
public ListgetAddressTree() {// 獲取數(shù)據(jù)庫中的所有address數(shù)據(jù)
Listaddresses = this.baseMapper.getAddressTree();
// 操作所有的address數(shù)據(jù)
// 通過Collectors.groupingBy(Address::getPid)方法對addresses按照Pid進行分組,也就是將pid相同的放在一起
Map>addressMap = addresses.stream().collect(Collectors.groupingBy(Address::getPid));
// 循環(huán)addresses,給它設(shè)置children屬性
addresses.forEach(address ->{address.setChildren(addressMap.get(address.getId()));
});
// 現(xiàn)在已經(jīng)形成了多棵樹,最后我們再通過filter()方法挑選出根節(jié)點的那顆樹即可。 這里我的根節(jié)點的pid為0
ListresultList = addresses.stream().filter(item ->item.getPid().equals("0"))
.collect(Collectors.toList());
return resultList;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁標題:java--list轉(zhuǎn)樹形結(jié)構(gòu)-創(chuàng)新互聯(lián)
瀏覽地址:http://jinyejixie.com/article16/ddspgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、建站公司、網(wǎng)站排名、網(wǎng)站設(shè)計公司、網(wǎng)站導航、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容