すべてのサブクラスを見つけるためのJavaツリー構造は、親ノードに基づいて、ノード

  前の記事では、ツリー構造のデータ統合JSON形式の2つの方法について説明し、第一の方法は、あなたを伝えるために単独で出て、ここで親に応じて、サブクラスのメソッドのすべてを取得しています。

  それでも次のように、統合するために再帰を使用します。

    // 親ノードとしてすべての子ノードを取得し
    、パブリック 静的の一覧<TreeBuilder.Node> GetChildrenメソッド(PID整数、リスト<TreeBuilder.Node> nodelistと){
        一覧 <TreeBuilder.Node> resultList = 新しい ArrayListを<> ();
        もしヌル = nodelistと&& nodeList.size()> 0!){
             試み{
                 のために(TreeBuilder.Node層:nodelistと){
                     場合(PID == layer.getParentId()){
                         // 添加子级节点
                        resultList.add(層);
                        // 递归获取深层节点
                        resultList.addAll(GetChildrenメソッド(layer.getId()、nodelistと))。
                    }
                }
            } キャッチ(例外e){
                System.out.println(e)は、
            }
        }
        返すresultListを。
    }

  テストコードを参照してください。

パッケージcom.johanChan.WebSocket.controllerを。

輸入com.alibaba.fastjson.JSON;
輸入com.johanChan.WebSocket.utils.BuildTree;
輸入com.johanChan.WebSocket.utils.CommonUtils。
輸入com.johanChan.WebSocket.utils.Tree;
輸入com.johanChan.WebSocket.utils.TreeBuilder。
輸入org.springframework.stereotype.Controller;
輸入org.springframework.web.bind.annotation.PathVariable;
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.ResponseBody。

輸入はjava.util.List;

@コントローラ
パブリック クラスTreeController {

    一覧 <TreeBuilder.Node> nodelistと。
    一覧 <ツリー<TreeBuilder.Node >> treeList。
    {
        nodelistと = CommonUtils.buildNode()。
        treeList = CommonUtils.buildTree()。
    }

    @ResponseBody
    @RequestMapping( "/ getTreeJson" パブリック文字列getTreeJson(){
 //         リスト<TreeBuilder.Node> nodelistとCommonUtils.buildNode =();
//         文字列結果= CommonUtils.buildTree(nodelistと)。
        一覧<ツリー<TreeBuilder.Node >> resultList = BuildTree.build(treeList)。
        文字列結果 = JSON.toJSONString(resultList)。
        戻り値の結果;
    }

    @ResponseBody
    @RequestMapping( "/ GetChildrenメソッド/ {ID}" パブリック文字列GetChildrenメソッド(@PathVariable( "ID" )、整数ID){
 //         リスト<TreeBuilder.Node> nodelistとCommonUtils.buildNode =(); 
        リスト<TreeBuilder.Node>結果= CommonUtils.getChildren(ID、nodelistと)。
//         文字列jsonStr = JSON.toJSONString(結果)。
        ストリングjsonStr = CommonUtils.buildTree(結果)。
        返すjsonStrを。
    }

}

  方法:GetChildrenメソッド/ {idが}の効果を確認するプログラムを開始したいです。

 

   データ整頓:

[
    {
        "子供" :[
            {
                "コード": "豫A-1"  "ID" 15  "レベル":5  "名前": "金水区"  "PARENTID":11
            }
        ]、
        "コード": "豫A"  "ID":11  "レベル":4  "名前": "郑州"  "PARENTID":7
    }、
    {
        "コード": "豫B"  "ID":12  "レベル":4  "名前": "开封"  "PARENTID":7
    }、
    {
        "コード": "豫C"  "ID":13  "レベル":4  "名前": "洛阳"  "PARENTID":7
    }、
    {
        "コード": "豫R"  "ID":14  "レベル":4  "名前": "南阳"  "PARENTID":7
    }
]

  データを望まれていた、あなたはOKで自分のニーズに応じてそれを変更することができます。

 

おすすめ

転載: www.cnblogs.com/JohanChan/p/12619386.html