Recursion is a very useful knowledge point. Write some examples to help me remember
There is process code in the middle
First a javapojo class
package com.qcf.po;import java.util.HashSet;import java.util.Set;public class Depart {private long id;private String name;private String destination;//User Set<User> users=new HashSet<User>();//Subclass department Set<Depart> departs=new HashSet<Depart>();//Presid class department 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 destination;}public void setDestion(String destination) {this.destion = destion;}}Test code:
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 java.util.Set;import org.aspectj.weaver.patterns.ThisOrTargetAnnotationPointcut;import com.qcf.po.Depart;public class PreDepart {/** * Structure* ┝Development Department* ┝Development One* ┝Development Group* ┝Development Group 2* ┝Development Part 2* ┝Development Group 3* ┝Development Group 4* ┝Sales Department* ┝Sales Department 1* ┝Sales Department 2*/public static List<Depart> findDepartTopList(){//Top Depart1=new Depart();depart1.setName("Development Department");//Second Depart1_1=new Depart();depart1_1.setName("Development Group");//Second Depart1_1=new Depart();depart1_1.setName("Development Group");Depart depart1_1_2=new Depart();depart1_1_2.setName("Development Group 2");Set<Depart> departs1_1=new HashSet<Depart>();departs1_1.add(depart1_1_1);departs1_1.add(depart1_1_2);depart1_1.setDeparts(departs1_1);Depart1_2=new Depart();depart1_2.setName("Development Part 2");Depart depart1_2_1=new Depart();depart1_2_1.setName("Development Group One");Depart depart1_2_2=new Depart();depart1_2_2.setName("Development Group Two");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);//Top Depart2=new Depart();depart2.setName("Sales Department");//Second Depart2_1=new Depart();depart2_1.setName("Sales one");Depart depart2_2=new Depart();depart2_2.setName("Sales two");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,"=");}/**Print out all departments*/public static void getAllDepartName(Depart depart){System.out.println(depart.getName()); for (Depart chirden : depart.getDeparts()) {getAllDepartName(chirden);}}/**Print out all departments*/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);}}}Summarize
The above is all the content of this article about the code example of Java recursive algorithm traversing department. I hope it will be helpful to everyone. Interested friends can continue to refer to this site:
Java recursive algorithm example analysis
Java programming uses stack to solve Hannover problem code examples (non-recursive)
Detailed explanation of the selection of map traversal methods in Java
If there are any shortcomings, please leave a message to point it out. Thank you friends for your support for this site!