遞歸是一個非常有用的知識點。寫點實例幫助自己記憶
中間有過程代碼
首先一個javascript/48039.html">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遞歸算法遍歷部門代碼示例的全部內容,希望對大家有所幫助.
新聞熱點
疑難解答
圖片精選