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);
}
相关推荐
凤凰院凶涛QAQ9 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛9 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu11410 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
爱喝水的鱼丶11 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
w_zero_one11 小时前
算法--模拟
java·数据结构·算法
小灰灰搞电子11 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放11 小时前
面向对象高级(实战案例)
开发语言·python·学习
Javatutouhouduan11 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David11 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源12 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计