트 리 구조 데 이 터 를 조립 하고 하위 노드 를 무 게 를 제거 합 니 다!

  • 트 리 구조 데 이 터 를 조립 할 때 데이터 베 이 스 를 재 귀적 으로 조회 하 는 횟수 를 줄 이기 위해 한꺼번에 데 이 터 를 모두 찾 아 낸 다음 메모리 에 데 이 터 를 데이터 구조 로 조립 하기 로 했다.그러나 데이터 에 탑 재 된 실 체 는 제한 이 있 고 다음 의 TreeNode 실 체 는 간단 한 예 이다.
  • TreeNode 실체
  • public class TreeNode {
        private String id;
        private String parentId;
        private HashSet children;
        
        public TreeNode(String id, String parentId) {
            this.id = id;
            this.parentId = parentId;
        }
    
    
        public String getParentId() {
            return parentId;
        }
    
        public void setParentId(String parentId) {
            this.parentId = parentId;
        }
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public HashSet getChildren() {
            return children;
        }
    
        public void setChildren(HashSet children) {
            this.children = children;
        }
        
    }
    
  • 재 귀적 으로 나무 구 조 를 만든다
  •   /**
         *         
         * @param treeNodes
         * @return
         */
        public static List buildTree(List treeNodes) {
            List trees = new ArrayList<>();
            for (TreeNode treeNode : treeNodes) {
                if ("0".equals(treeNode.getParentId())) {
                    trees.add(findChildren(treeNode,treeNodes));
                }
            }
            return trees;
        }
    
    
     public static TreeNode findChildren(TreeNode treeNode,List treeNodes) {
            for (TreeNode it : treeNodes) {
                if(treeNode.getId().equals(it.getParentId())) {
                    if (treeNode.getChildren() == null) {
                        treeNode.setChildren(new HashSet());
                    }
                    treeNode.getChildren().add(findChildren(it,treeNodes));
                }
            }
            return treeNode;
        }
    
  • 조립 데이터
  • public static  List packageData(){
            TreeNode treeNode1 = new TreeNode("1","0");
            TreeNode treeNode2 = new TreeNode("2","0");
            TreeNode treeNode3 = new TreeNode("3","2");
            TreeNode treeNode4 = new TreeNode("4","2");
            TreeNode treeNode5 = new TreeNode("5","2");
            TreeNode treeNode6 = new TreeNode("6","3");
            TreeNode treeNode7 = new TreeNode("7","6");
            TreeNode treeNode8 = new TreeNode("8","6");
            TreeNode treeNode9 = new TreeNode("9","1");
            TreeNode treeNode10 = new TreeNode("10","9");
            TreeNode treeNode11 = new TreeNode("11","9");
            TreeNode treeNode12 = new TreeNode("12","11");
            List list = new ArrayList<>();
            list.add(treeNode1);
            list.add(treeNode2);
            list.add(treeNode3);
            list.add(treeNode4);
            list.add(treeNode5);
            list.add(treeNode6);
            list.add(treeNode7);
            list.add(treeNode8);
            list.add(treeNode9);
            list.add(treeNode10);
            list.add(treeNode11);
            list.add(treeNode12);
            return list;
        }
    
  • 테스트
  • public static void main(String[] args) {
    
            List treeNodes = packageData();
    
            List treeList = TreeBuilder.buildTree(treeNodes);
            
        }
    
  • 소결:
     TreeNode   ,   List      ,       。  ,       TreeNode  java  ,                         ,     。
    
  • 좋은 웹페이지 즐겨찾기