成都网站建设设计

将想法与焦点和您一起共享

java的递归代码 java中递归怎么运行的

java递归查询子节点,按给的示例代码实现

代码如下:

主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站、程序开发、微网站、微信小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计、成都网站制作、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。

import java.util.ArrayList;

import java.util.List;

class Org {

private String id;

private String name;

private String pid;

public Org(String id, String name, String pid) {

this.id = id;

this.name = name;

this.pid = pid;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPid() {

return pid;

}

public void setPid(String pid) {

this.pid = pid;

}

@Override

public String toString() {

return "Org [id=" + id + ", name=" + name + ", pid=" + pid + "]";

}

}

public class App {

static void find(ListOrg list, String pid) {

list.stream().filter(p - p.getPid().equals(pid))

.forEach(org - {

System.out.println(org);

find(list, org.getId());

});

}

public static void main(String[] args) {

ListOrg list = new ArrayList();

list.add(new Org("111", "公司", "0"));

list.add(new Org("222", "部门", "111"));

list.add(new Org("333", "小组", "222"));

list.add(new Org("444", "员工1", "333"));

list.add(new Org("555", "员工2", "333"));

find(list, "0");

System.out.println("------------------------------------");

find(list, "111");

}

}

运行结果:

用java递归算法求一个数字的阶乘

1、采用自顶向上的递归方法,代码如下:

import java.util.Scanner;

public class Test {

@SuppressWarnings("resource")

public static void main(String[] args) {

// 从控制台输入一个整数

Scanner in = new Scanner(System.in);

int b = in.nextInt();

// 声明一个Test对象,调用cal方法获得结果

Test test = new Test();

long a = test.cal(b);

System.out.println(a);

}

// 通过递归掉调用最终返回结果

public long cal(int number) {

// 如果数字为1,则直接返回

if (number == 1) {

return 1;

} else {// 否则递归求值

return number * cal(number - 1);

}

}

}

2、递归方法:

递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).

3、特点:

(1) 递归就是在过程或函数里调用自身。

(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。

(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。

求一个java递归例子

这个很好写的,代码如下:

private ListDept recursionDept(ListDept ld){

for(int i=0; ild.size(); i++) {

Dept d = ld.get(i)

loop(d);

}

}

private void loop(Dept d) {

ListDept children=service.getChildDept(d.id);

if (children.size() 0) {

d.setChildren(children); // 这里假设子列表属性的名字就是children

for(int j=0; jchidren.size(); j++){

loop(children.get(j);

}

}

}

这个题目对初学者来说比较难的一点是,得想明白要自己建一个递归方法(loop)


当前标题:java的递归代码 java中递归怎么运行的
当前链接:http://chengdu.cdxwcx.cn/article/dohpcji.html