當前位置:成語大全網 - 書法字典 - java樹級對象的遞歸搜索子集問題

java樹級對象的遞歸搜索子集問題

包裹?com . demo . dept;

/**

*?@作者?東賓.於

*?@從?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

}

}