データ構造:マルチツリーの確立

2738 ワード

私はこのような需要があります.地区表には中国、河北省、ケイ台市、橋東区などの多階層の地区が含まれています.全部で4つの階層があります.データベースフィールドのデザインは
id
parentId
name
vel
番号付け
父のid
地域の名前
レベル
これらのデータをレベル関係のあるjsonデータに変えたいです.明らかにデータの構造はツリーで、ツリーの構造を作ります.ノードnode.class
 public class Node{
        public Map childs = new HashMap<>();
        public String name;
        public Integer id;
        public Integer parentId;
    }
ノードがツリーを構築し始めました.下記のコードにより説明します.私はすでにデータベースからすべてのデータアトラスを取り出してツリーを構築しました.
public void local(List attrAreas){
    //     
    Node root=new Node();
    Map maps= new HashMap<>();
    //      ,       map 
    for(ModelAttrArea temp:attrAreas) {
        Node node = new Node();
        node.name = temp.getName();
        node.id = temp.getID();
        node.parentId = temp.getParentId();
        maps.put(temp.getID(),node);
    }
    //         map,               ,        ,     ,           。
    for (Map.Entry entry : maps.entrySet()) {
        Node e=entry.getValue();
        Integer parentId = e.parentId;
        if(parentId==null){
            root.childs.put(e.id, e);
        }else{
            Node pnode = maps.get(parentId);
            pnode.childs.put(e.id,e);
        }
    }
}
マルチツリー構築完了~~