微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java递归算法遍历部门代码示例

这篇文章主要介绍了Java递归算法遍历部门代码示例,具有一定借鉴价值,需要的朋友可以参考下。

递归是一个非常有用的知识点。写点实例帮助自己记忆

中间有过程代码

首先一个javapojo类

package com.qcf.po; import java.util.HashSet; import java.util.Set; public class Depart { private long id; private String name; private String destion; //用户 Set users=new HashSet(); //子类部门 Set departs=new HashSet(); //父类部门 private Depart depart; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set getUsers() { return users; } public void setUsers(Set users) { this.users = users; } public Set getDeparts() { return departs; } public void setDeparts(Set departs) { this.departs = departs; } public Depart getDepart() { return depart; } public void setDepart(Depart depart) { this.depart = depart; } public String getDestion() { return destion; } public void setDestion(String destion) { this.destion = destion; } }

测试代码

package com.qcf.util; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import org.aspectj.weaver.patterns.ThisOrTargetAnnotationpointcut; import com.qcf.po.Depart; public class PreDepart { /** * 结构 * ┝开发部 * ┝开发一部 * ┝开发一组 * ┝开发二组 * ┝开发二部 * ┝开发三组 * ┝开发四组 * ┝销售部 * ┝销售一部 * ┝销售二部 */ public static List findDepartTopList(){ //顶级 Depart depart1=new Depart(); depart1.setName("开发部"); //二级 Depart depart1_1=new Depart(); depart1_1.setName("开发一部"); //三级 Depart depart1_1_1=new Depart(); depart1_1_1.setName("开发一组"); Depart depart1_1_2=new Depart(); depart1_1_2.setName("开发二组"); Set departs1_1=new HashSet(); departs1_1.add(depart1_1_1); departs1_1.add(depart1_1_2); depart1_1.setDeparts(departs1_1); Depart depart1_2=new Depart(); depart1_2.setName("开发二部"); Depart depart1_2_1=new Depart(); depart1_2_1.setName("开发一组"); Depart depart1_2_2=new Depart(); depart1_2_2.setName("开发二组"); Set departs1_2=new HashSet(); departs1_2.add(depart1_1_1); departs1_2.add(depart1_1_2); depart1_2.setDeparts(departs1_1); Set departs1=new HashSet(); departs1.add(depart1_1); departs1.add(depart1_2); depart1.setDeparts(departs1); //顶级 Depart depart2=new Depart(); depart2.setName("销售部"); //二级 Depart depart2_1=new Depart(); depart2_1.setName("销售一部"); Depart depart2_2=new Depart(); depart2_2.setName("销售二部"); Set departs=new HashSet(); departs.add(depart2_1); departs.add(depart2_2); depart2.setDeparts(departs); List list=new ArrayList(); list.add(depart1); list.add(depart2); return list; } public static void main(String[] args) { List list=findDepartTopList(); // for (Depart depart : list) { // getAllDepartName(depart); // } getAllDepartName_2(list,"="); } /**将所有的部门打印出来*/ public static void getAllDepartName(Depart depart){ System.out.println(depart.getName()); for (Depart chirden : depart.getDeparts()) { getAllDepartName(chirden); } } /**将所有的部门打印出来*/ public static void getAllDepartName_2(Collection list,String pre){ for (Depart depart2 : list) { System.out.println( pre +depart2.getName()); getAllDepartName_2(depart2.getDeparts()," "+pre); } } }

总结

以上就是本文关于Java递归算法遍历部门代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

java递归算法实例分析

Java编程用栈来求解汉诺塔问题的代码实例(非递归)

Java中map遍历方式的选择问题详解

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐