溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java遞歸算法遍歷部門代碼示例

發布時間:2020-09-21 21:43:56 來源:腳本之家 閱讀:313 作者:老瞿 欄目:編程語言

遞歸是一個非常有用的知識點。寫點實例幫助自己記憶

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編程用棧來求解漢諾塔問題的代碼實例(非遞歸)

Java中map遍歷方式的選擇問題詳解

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女