实体:
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