Java递归算法遍历部门代码示例
程序员文章站
2023-12-16 21:06:46
递归是一个非常有用的知识点。写点实例帮助自己记忆
中间有过程代码
首先一个javapojo类
package com.qcf.po;
import ja...
递归是一个非常有用的知识点。写点实例帮助自己记忆
中间有过程代码
首先一个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<user> users=new hashset<user>(); //子类部门 set<depart> departs=new hashset<depart>(); //父类部门 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<user> getusers() { return users; } public void setusers(set<user> users) { this.users = users; } public set<depart> getdeparts() { return departs; } public void setdeparts(set<depart> 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<depart> 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<depart> departs1_1=new hashset<depart>(); 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<depart> departs1_2=new hashset<depart>(); departs1_2.add(depart1_1_1); departs1_2.add(depart1_1_2); depart1_2.setdeparts(departs1_1); set<depart> departs1=new hashset<depart>(); 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<depart> departs=new hashset<depart>(); departs.add(depart2_1); departs.add(depart2_2); depart2.setdeparts(departs); list<depart> list=new arraylist<depart>(); list.add(depart1); list.add(depart2); return list; } public static void main(string[] args) { list<depart> 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<depart> list,string pre){ for (depart depart2 : list) { system.out.println( pre +depart2.getname()); getalldepartname_2(depart2.getdeparts()," "+pre); } } }
总结
以上就是本文关于java递归算法遍历部门代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!