无限极分类JAVA 实现—查子孙树、家谱树

无限极分类JAVA实现—查子孙树、家谱树
效果展示:
无限极分类JAVA 实现—查子孙树、家谱树
文章图片

import java.util.*; public class Test { List data = https://www.it610.com/article/new ArrayList(); Set _search_id = new HashSet(); Set _search_pid = new HashSet(); @org.junit.Test public void demo() { data.add(new HashMap() {{ put("id", "1"); put("pid", "0"); put("name", "部门ID-1"); }}); data.add(new HashMap() {{ put("id", "2"); put("pid", "0"); put("name", "部门ID-2"); }}); data.add(new HashMap() {{ put("id", "3"); put("pid", "0"); put("name", "部门ID-3"); }}); data.add(new HashMap() {{ put("id", "4"); put("pid", "1"); put("name", "部门ID-1-4"); }}); data.add(new HashMap() {{ put("id", "5"); put("pid", "1"); put("name", "部门ID-1-5"); }}); data.add(new HashMap() {{ put("id", "6"); put("pid", "5"); put("name", "部门ID-5-6"); }}); data.add(new HashMap() {{ put("id", "7"); put("pid", "5"); put("name", "部门ID-5-6"); }}); data.add(new HashMap() {{ put("id", "8"); put("pid", "6"); put("name", "部门ID-5-6"); }}); Set son = search_id(data, "5"); System.out.println("找子孙" + son); Set father = search_pid(data, "6"); System.out.println("找家谱" + father); }//查找子孙树 public Set search_id(List data, String id) {for (int i = 0; i < data.size(); i++) { Object objPid = data.get(i).get("pid"); if (objPid != null) { if (objPid.equals(id)) { Object objId = data.get(i).get("id"); _search_id.add(objId.toString()); search_id(data, objId.toString()); } } } return _search_id; }//查找 家谱树 public Set search_pid(List data, String pid) { for (int i = 0; i < data.size(); i++) { Object objPid = data.get(i).get("id"); if (objPid != null) { if (objPid.equals(pid)) { Object objId = data.get(i).get("pid"); _search_pid.add(objId.toString()); search_pid(data, objId.toString()); } } } return _search_pid; } }

【无限极分类JAVA 实现—查子孙树、家谱树】

    推荐阅读