求一个递归算法

jidushanbojue 2010-04-14 03:56:35
有一个表示“组”的JavaBean

public class Group{
private String id;
private String parentId;//父ID
public String getId(){return id;}
public void setId(String id){this.id=id;}
public String getParentId(){return parentId;}
public void setParentId(String parentId){this.parentId=parentId;}
}


把若干个这样的JavaBean放入一个ArrayList<Group>里
现在我想写一个递归方法,传入一个参数id,也就是一个组的id,然后遍历这个list,返回这个组的所有子组,以及子组的子组,也就是说返回所给组的所有子孙

这个算法应该怎么写?请大侠们指教!
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyangdesky 2010-04-14
  • 打赏
  • 举报
回复
jf!!!!!!!!!!!!!!!!!!
jidushanbojue 2010-04-14
  • 打赏
  • 举报
回复
应该可以了,谢谢,我的思路差了一些
luffyke 2010-04-14
  • 打赏
  • 举报
回复
一楼的是正解,
主要是查group的parentid有没有等于其他group的id,有的话就开始递归,终止条件当然就是parentid不等于其他的id
luozhangwen 2010-04-14
  • 打赏
  • 举报
回复
如果有什么问题,请为我csdn留言
luozhangwen 2010-04-14
  • 打赏
  • 举报
回复
不喜欢用String做id所以改了. 不好意思.

import java.util.ArrayList;
import java.util.List;

public class Test
{
public static void main(String[] args)
{
Group g1 = new Group(1,0);
Group g2 = new Group(2,1);
Group g3 = new Group(3,2);
List<Group> list = new ArrayList<Group>();
list.add(g1);
list.add(g2);
list.add(g3);
Test.seach(0, list);
}
public static void seach(Integer indexId,List<Group> list){
for (Group group : list)
{
if(group.getParentId() == indexId){
System.out.println(group.getId());
seach(group.getId(), list);
}
}
}
}

class Group{
private Integer id;
private Integer parentId;//父ID
public Group(Integer id, Integer parentId)
{
this.id = id;
this.parentId = parentId;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public Integer getParentId()
{
return parentId;
}
public void setParentId(Integer parentId)
{
this.parentId = parentId;
}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧