前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JAVA基础之递归调用的案例】实用代码

【JAVA基础之递归调用的案例】实用代码

作者头像
用户5640963
发布2019-10-23 15:39:07
4290
发布2019-10-23 15:39:07
举报
文章被收录于专栏:卯金刀GG卯金刀GG

1、递归

递归就是一个程序或函数在其中定义或说明有之间或者间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大的减少了程序的代码量,递归的能力在于用有限的语句来定义对象的无限集合,一般来说,递归需要边界条件,递归前进段和递归返回段,当边界条件不满足时,递归前进,当边界条件满足时,递归返回。

2、实例代码

代码语言:javascript
复制
private List<HkFiletype> buildTree(List<HkFiletype> hkFiletypes,
									   String preentId,
									   List<HkFiletype> hktrees){
		//第一级数据
		if ("0".equals(preentId)){
			hkFiletypes.forEach(hkFiletype -> {
				String parentfiletypeid = hkFiletype.getParentfiletypeid();
				if (null != parentfiletypeid && parentfiletypeid.equals(preentId)){
					hktrees.add(hkFiletype);
				}
			});
		}else {
			hktrees.forEach(hkFiletype -> {
				String id = hkFiletype.getId();
				List<HkFiletype> hktree = new ArrayList<>();
				hkFiletypes.forEach(hkFiletype1 ->{
					String parentfiletypeid = hkFiletype1.getParentfiletypeid();
					if (parentfiletypeid.equals(id)){
						hkFiletype.setHasChildren(true);
						hktree.add(hkFiletype1);
						buildTree(hkFiletypes,hkFiletype1.getId(),hktree);
					}
				} );
				hkFiletype.setChiles(hktree);
			});

		}
		return  hktrees;
	}

3、代码调用

代码语言:javascript
复制
public List<HkFiletype> selectTreeList(HkFiletype hkFiletype){
		hkFiletype.setDelmark(1);
		List<HkFiletype> hkFiletypes = hkFiletypeMapper.selectList(hkFiletype);
		List<HkFiletype> hktrees = new ArrayList<>();
		hktrees = buildTree(hkFiletypes,"0",hktrees);
		hktrees = buildTree(hkFiletypes,"1",hktrees);
		return hktrees;
	}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档