欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-22 21:05:28
递归是一个非常有用的知识点。写点实例帮助自己记忆 中间有过程代码 首先一个javapojo类 package com.qcf.po; import ja...

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

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<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遍历方式的选择问题详解

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

上一篇:

下一篇: