温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JAVA递归调用的实例代码

发布时间:2021-06-29 09:48:09 来源:亿速云 阅读:131 作者:chen 栏目:大数据

这篇文章主要讲解了“JAVA递归调用的实例代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA递归调用的实例代码”吧!

1、递归

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

2、实例代码

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、代码调用

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;
	}

感谢各位的阅读,以上就是“JAVA递归调用的实例代码”的内容了,经过本文的学习后,相信大家对JAVA递归调用的实例代码这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI