Java递归方法实现面包屑导航

实现在详情页可以显示,该页面是西湖区的详情页,可以得到西湖区对应的id,在数据库中有一个parentId字段,对应父级数据,当parentId为空时,为最上级

bash 复制代码
中国 > 浙江 > 杭州 > 西湖区

通过西湖区的id去进行查询,是反向通过父级id来进行查询,

java 复制代码
//先传入目标节点id,和一个空集合list
//list用于存储获取到的全部目标节点及对应的父类数据
private void getList(Long destId,List<Dest> list){
	//如果传入的destId为空时,是最上级的内容,结束方法即可
	if(destId == null){
		return;
	}

	//通过当前id查询到该id对应的全部数据
	Dest dest = mapper.getDataById(destId);
	//list.add(dest);
	//在这里将数据存入到list中,即存的最小地区依次范围更大
	//如果需要倒序显示,可以使用方法Collections.reverse(list) 进行反序

	//继续调用本方法实现递归
	getList(dest.getParentId(),list);
	
	//在这里进行list.add 会先执行递归方法,当执行到最顶级时,进行每层存入,先存入的是最顶层的数据,因此无需再进行反序操作
	/*执行流程是这样的:
		从目标节点开始,一直向上递归找父节点
		直到最顶层父节点(parentId 为 null 时递归终止)
		递归返回时,‌最顶层父节点最先被 add‌
		然后逐层返回,子节点依次被 add */
	list.add(dest);
}
相关推荐
fīɡЙtīиɡ ℡1 小时前
AI 应用系统设计
java·开发语言·人工智能
城管不管1 小时前
重生——第十一次面试之挖财一面2026.8.19已OC
java·服务器·jvm·数据库·spring·面试·职场和发展
码匠许师傅1 小时前
【C++ 面试真题】26. 聊聊 C++ 的智能指针
java·c++·面试
AI绘画哇哒哒2 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
最强小杰2 小时前
gpt-5.6-sol 频繁报 503 怎么办?区分容量熔断和限速 429 的排查方法 + 可复用 retry wrapper
java·人工智能·gpt·ai
今天AI了吗3 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
TELL5213 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
动词ing4 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习4 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展