递归查询所有部门,并按部门等级打印

实体:
package demo;
/**
*
*@author:
*@CreateTime:
*@ModifiedDate:
*@ModifiedBy:
*@Version:
*/
public class Dempr {

	private String demp1;
	private String demp2;
	private String demp3;
	public Dempr() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Dempr(String demp1, String demp2, String demp3) {
		super();
		this.demp1 = demp1;
		this.demp2 = demp2;
		this.demp3 = demp3;
	}
	public String getDemp1() {
		return demp1;
	}
	public void setDemp1(String demp1) {
		this.demp1 = demp1;
	}
	public String getDemp2() {
		return demp2;
	}
	public void setDemp2(String demp2) {
		this.demp2 = demp2;
	}
	public String getDemp3() {
		return demp3;
	}
	public void setDemp3(String demp3) {
		this.demp3 = demp3;
	}
	
	
	
}
方法:
 
package demo; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * @author: * @CreateTime: * @ModifiedDate: * @ModifiedBy: * @Version: */ public class dempimpl { public static void main(String[] args) { List<Dempr> dr = new ArrayList<>(); Dempr d1 = new Dempr(); //d1.setDemp1("0"); // 上级 d1.setDemp2("1"); // 本级 d1.setDemp3("部门1"); // 名称 dr.add(d1); Dempr d2 = new Dempr(); d2.setDemp1("1"); d2.setDemp2("2"); d2.setDemp3("部门2"); dr.add(d2); Dempr d3 = new Dempr(); d3.setDemp1("2"); d3.setDemp2("3"); d3.setDemp3("部门3"); dr.add(d3); Dempr d4 = new Dempr(); d4.setDemp1("1"); d4.setDemp2("4"); d4.setDemp3("部门4"); dr.add(d4); Map<Integer, List<Dempr>> newMap = new HashMap<>(); List<Dempr> newList = null; for (Dempr dempr : dr) { Integer demp = demp(dr,1,dempr.getDemp1()); if(newMap.containsKey(demp)){ newList = newMap.get(demp); newList.add(dempr); newMap.put(demp, newList); }else{ newList = new ArrayList<>(); newList.add(dempr); newMap.put(demp, newList); } } for (Integer key : newMap.keySet()) { List<Dempr> lastList = newMap.get(key); System.out.println(">>--------"+key+"级--------"); for (Dempr dempr : lastList) { if (dempr.getDemp1() == null) { System.out.println("部门等级: " + key + " 总部:" + dempr.getDemp2() + " 总部名称:" + dempr.getDemp3()); }else{ System.out.println("部门等级: " + key + " 父级部门: " + dempr.getDemp1() + " 本级部门:" + dempr.getDemp2() + " 部门名称:" + dempr.getDemp3()); } } } } public static Integer demp(List<Dempr> dr, Integer num1, String demp1) { for (Dempr role : dr) { if (role.getDemp2().equals(demp1)) { num1 += 1; return demp(dr, num1, role.getDemp1()); } } return num1; } } 


打印出来即为部门层级结果。

 
 
 
>>--------1级--------
部门等级: 1 总部:1 总部名称:部门1
>>--------2级--------
部门等级: 2 父级部门: 1 本级部门:2 部门名称:部门2
部门等级: 2 父级部门: 1 本级部门:4 部门名称:部门4
>>--------3级--------
部门等级: 3 父级部门: 2 本级部门:3 部门名称:部门3
 
发布了6 篇原创文章 · 获赞 2 · 访问量 763

猜你喜欢

转载自blog.csdn.net/weixin_41155095/article/details/78675713