网站建设资讯

NEWS

网站建设资讯

JAVA递归调用的实例代码

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

成都创新互联是一家专注于成都网站建设、成都网站设计与策划设计,昆玉网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:昆玉等地区。昆玉做网站价格咨询:18982081108

1、递归

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

2、实例代码

private List buildTree(List hkFiletypes,
									   String preentId,
									   List 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 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 selectTreeList(HkFiletype hkFiletype){
		hkFiletype.setDelmark(1);
		List hkFiletypes = hkFiletypeMapper.selectList(hkFiletype);
		List hktrees = new ArrayList<>();
		hktrees = buildTree(hkFiletypes,"0",hktrees);
		hktrees = buildTree(hkFiletypes,"1",hktrees);
		return hktrees;
	}

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


分享名称:JAVA递归调用的实例代码
网站地址:http://cdweb.net/article/podedo.html