java遞歸生成樹型結(jié)構(gòu)方式
更新時間:2024年12月17日 16:41:57 作者:青艾_XY
文章介紹了如何使用Java遞歸生成樹形結(jié)構(gòu),包括獲取數(shù)據(jù)、生成樹形結(jié)構(gòu)、查詢子節(jié)點(diǎn)等步驟,作者分享了自己的經(jīng)驗(yàn),希望能對大家有所幫助
java遞歸生成樹
1.獲取數(shù)據(jù)
public List<TreeClassifyRespVO> getTreeClassifyList(ClassifyPageReqVO reqVO) {
List<ClassifyDO> classifyList = classifyMapper.selectList(reqVO);
List<TreeClassifyRespVO> childClassifyResp = ClassifyConvert.INSTANCE.convertList01(classifyList);
return getClassifyTree(childClassifyResp);
}2.生成樹形結(jié)構(gòu)
public List<TreeClassifyRespVO> getClassifyTree(List<TreeClassifyRespVO> childClassifyResp) {
// 返回的樹形數(shù)據(jù)
List<TreeClassifyRespVO> tree = new ArrayList<TreeClassifyRespVO>();
// 第一次遍歷
for (TreeClassifyRespVO treeClassify : childClassifyResp) {
// 找到根節(jié)點(diǎn),這里我的根節(jié)點(diǎn)的pid為0
if (treeClassify.getPid()==0) {
tree.add(findChild(treeClassify, childClassifyResp));
}
}
return tree;
}3.查詢子節(jié)點(diǎn)
private TreeClassifyRespVO findChild(TreeClassifyRespVO treeClassify, List<TreeClassifyRespVO> list) {
// 定義list用于存儲子節(jié)點(diǎn)
List<TreeClassifyRespVO> children = new ArrayList<TreeClassifyRespVO>();
for (TreeClassifyRespVO node : list) {
// 找到根節(jié)點(diǎn),這里我的根節(jié)點(diǎn)的pid為0
if (node.getPid().equals(treeClassify.getId())) {
// 調(diào)用遞歸
children.add(findChild(node, list));
}
}
treeClassify.setChildren(children);
return treeClassify;
}4.效果

總結(jié)以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)HTTPS加密通信的詳細(xì)指南
這篇文章主要為大家詳細(xì)介紹了Spring?Boot中HTTPS的實(shí)現(xiàn)方案與實(shí)戰(zhàn)避坑指南,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-06-06
Java數(shù)據(jù)結(jié)構(gòu)之順序表和鏈表精解
我在學(xué)習(xí)完順序表后一直對順序表和鏈表的概念存在一些疑問,這里給出一些分析和看法,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下2021-09-09
Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析
這篇文章主要介紹了Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
Springboot與Maven多環(huán)境配置的解決方案
多環(huán)境配置的解決方案有很多,我看到不少項(xiàng)目的多環(huán)境配置都是使用Maven來實(shí)現(xiàn)的,本文就實(shí)現(xiàn)Springboot與Maven多環(huán)境配置,感興趣的可以了解下2021-06-06

