当前位置: 移动技术网 > IT编程>开发语言>Java > Java递归算法遍历部门代码示例

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

2019年07月19日  | 移动技术网IT编程  | 我要评论

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

中间有过程代码

首先一个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递归算法遍历部门代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

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

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网