/**
*?@作者?東賓.於
*?@從?2016-05-06
*?@自從?V1.0
*/
公共?班級?Dept?{
私人?int?id;
私人?字符串?姓名;
私人?int?parentId
公共?int?getId()?{
回歸?id;
}
公共?作廢?setId(int?id)?{
這個. id?=?id;
}
公共?字符串?getName()?{
回歸?姓名;
}
公共?作廢?setName(字符串?姓名)?{
這個名字?=?姓名;
}
公共?int?getParentId()?{
回歸?parentId
}
公共?作廢?setParentId(int?parentId)?{
this.parentId?=?parentId
}
公共?Dept(int?id,?字符串?姓名,?int?parentId)?{
這個. id?=?id;
這個名字?=?姓名;
this.parentId?=?parentId
}
}包?com . demo . dept;
進口?Java . util . ArrayList;
進口?Java . util . hashmap;
進口?Java . util . list;
進口?Java . util . map;
/**
*?@作者?東賓.於
*?@從?2016-05-06
*?@自從?V1.0
*/
公共?班級?DeptTest?{
私人?靜電?列表& lt部門& gt?depts?=?新的?ArrayList & lt& gt();
靜態{
depts.add(新?Dept(1,“部門1”,0));
depts.add(新?Dept(2,“部門2”,1));
depts.add(新?Dept(3,“部門3”,1));
depts.add(新?Dept(4,“部門4”,1));
depts.add(新?Dept(5,“部門5”,2));
depts.add(新?Dept(6,“部門6”,3));
depts.add(新?Dept(7,“部門7”,2));
depts.add(新?Dept(8,“部門8”,2));
depts.add(新?Dept(9,“部門9”,1));
depts.add(新?Dept(10,“部門10”,5));
}
公共?靜電?作廢?main(String[]?args)?{
地圖& lt整數,?列表& lt整數& gt& gt?deptMap?=?新的?HashMap & lt& gt();
為了什麽?(Dept?dept?:?depts)?{
deptMap.put(dept.getId()、getChildDept(dept . getid()));
}
system . out . println(dept map);
}
私人?靜電?列表& lt整數& gt?getChildDept(int?id){
列表& lt整數& gt?身份證?=?新的?ArrayList & lt& gt();
為了什麽?(Dept?dept?:?depts)?{
if(dept.getParentId()?==?id){
//添加父id第壹次匹配的那個
ids . add(dept . getid());
//添加匹配的嵌套父id
ids . addall(getChildDept(dept . getid()));
}
}
collections . sort(id);
回歸?ids
}
}