最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java遞歸菜單樹轉(zhuǎn)換成pojo對象

 更新時間:2013年08月09日 15:17:44   作者:  
這篇文章介紹了java遞歸菜單樹轉(zhuǎn)換成pojo對象的具體實現(xiàn),有需要的朋友可以參考一下
復制代碼 代碼如下:

  package com.cjonline.foundation.authority.pojo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import com.cjonline.foundation.util.CheckNullEmpty;
/**
 * 實現(xiàn)遞歸的幫助類,最終的結果可以描述成如下:
 * 根(root)
 * --1(子系統(tǒng)1)
 * -----1.1
 * -------1.1.1
 * -------1.1.2
 * ------- ....
 * -----1.2
 * --2(子系統(tǒng)2)
 * -----2.1
 * -------2.1.1
 * -------2.1.2
 * ------- ....
 * -----2.2
 */
public class ModelList implements java.io.Serializable {
    private static final Logger logger = Logger.getLogger(ModelList.class);
    private static final long serialVersionUID = 6384598893693849820L;
    /**
     * model代表當前模塊
     */
    private SysModel model;
    /**
     * models代表當前模塊下面的子模塊,
     */
    private List<ModelList> subList = new ArrayList<ModelList>();
    /**
     * 菜單級別
     */
    private int flag = 0;
    public SysModel getModel() {
        return model;
    }
    public void setModel(SysModel model) {
        this.model = model;
    }
    public List<ModelList> getSubList() {
        return subList;
    }
    public void setSubList(List<ModelList> subList) {
        this.subList = subList;
    }
    public void setFlag(int flag) {
        this.flag = flag;
    }
    public int getFlag() {
        return flag;
    }
    /**
     * 遞歸方法根據(jù)傳入的模塊集合形成層級菜單
     */
    @SuppressWarnings("unchecked")
    public ModelList createTree2(List<SysModel> ms) {
        //
        ModelList node = new ModelList();
        ArrayList<SysModel> fu = new ArrayList<SysModel>();// 用來存儲parentId為空的父節(jié)點;
        ArrayList<SysModel> childs = new ArrayList<SysModel>();// 用來存儲不是系統(tǒng)的模塊
        // 將系統(tǒng)和模塊菜單分開
        for (Iterator<SysModel> it = ms.iterator(); it.hasNext();) {
            SysModel mode = (SysModel) it.next();
            String parentId = mode.getParentId();
            if (parentId == null || parentId.equals("")) {
                fu.add(mode);
            } else {
                childs.add(mode);
            }
        }
        //由于是多個子系統(tǒng),首先要找出有多少個子系統(tǒng)
        for (SysModel model : fu) {
            ModelList node1 = new ModelList();
            node1.setFlag(0);
            node1.setModel(model);
            node.subList.add(node1);
            appendChild(node1, childs);
        }
        return node;
    }
    /**
     * node節(jié)點 childs為所以系統(tǒng)下的子節(jié)點
     */
    public void appendChild(ModelList node, List<SysModel> childs) {
        if (node != null) {
            String systemId = node.getModel().getSystemId();
            String smid = node.getModel().getSysModuleId();
            int flag = node.getFlag();
            if (childs != null && childs.size() > 0) {
                for (SysModel model : childs) {
                    String systemId2 = model.getSystemId();
                    String parentId2 = model.getParentId();
                    if (systemId.equals(systemId2)) {
                        if (parentId2.equals(smid)) {
                            ModelList child = new ModelList();
                            child.setModel(model);
                            child.setFlag(flag + 1);
                            node.getSubList().add(child);
                            appendChild(child, childs);
                        }
                    }
                }
            }
        }
    }
}
 

相關文章

  • Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析

    Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析

    Spring、SpringBoot和SpringCloud是Java開發(fā)中常用的框架,分別針對企業(yè)級應用開發(fā)、快速開發(fā)和分布式系統(tǒng),本文介紹Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系,感興趣的朋友一起看看吧
    2025-03-03
  • java GUI實現(xiàn)ATM機系統(tǒng)(3.0版)

    java GUI實現(xiàn)ATM機系統(tǒng)(3.0版)

    這篇文章主要為大家詳細介紹了java GUI實現(xiàn)ATM機系統(tǒng)(3.0版),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Java中特殊運算符及其應用詳解

    Java中特殊運算符及其應用詳解

    當涉及位操作和位級運算時,Java?提供了一組特殊的運算符,即左移(<<)和右移(>>)運算符,下面小編就帶大家深入了解一下它們的具體應用吧
    2023-08-08
  • Spring實戰(zhàn)之使用Expression接口進行表達式求值操作示例

    Spring實戰(zhàn)之使用Expression接口進行表達式求值操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之使用Expression接口進行表達式求值操作,結合實例形式分析了Spring操作Expression接口實現(xiàn)表達式運算的操作技巧與相關注意事項,需要的朋友可以參考下
    2019-12-12
  • 詳解Java多線程和IO流的應用

    詳解Java多線程和IO流的應用

    這篇文章主要介紹了詳解Java多線程和IO流的應用,無論是本地文件復制,還是網(wǎng)絡多線程下載,對于流的使用都是一樣的,需要的朋友可以參考下
    2023-04-04
  • springboot3?redis?常用操作工具類詳解

    springboot3?redis?常用操作工具類詳解

    本文詳細介紹了Spring Boot 3中使用Spring Data Redis進行Redis操作的工具類實現(xiàn),該工具類涵蓋了字符串、哈希、列表、集合和有序集合等常用功能,感興趣的朋友一起看看吧
    2025-01-01
  • Idea servlet映射方法優(yōu)缺點對比

    Idea servlet映射方法優(yōu)缺點對比

    這篇文章主要介紹了Idea servlet映射方法優(yōu)缺點對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java Volatile關鍵字實現(xiàn)原理過程解析

    Java Volatile關鍵字實現(xiàn)原理過程解析

    這篇文章主要介紹了Java Volatile關鍵字實現(xiàn)原理過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Spring Cloud如何切換Ribbon負載均衡模式

    Spring Cloud如何切換Ribbon負載均衡模式

    這篇文章主要介紹了Spring Cloud如何切換Ribbon負載均衡模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java連接Linux服務器過程分析(附代碼)

    Java連接Linux服務器過程分析(附代碼)

    這篇文章主要介紹了Java連接Linux服務器過程分析(附代碼),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12

最新評論

张家界市| 乌拉特中旗| 乐至县| 马山县| 登封市| 东阿县| 无极县| 台山市| 清涧县| 金山区| 瑞安市| 崇义县| 全椒县| 阿克| 潜江市| 阿巴嘎旗| 昌邑市| 浙江省| 喀喇沁旗| 新野县| 丹棱县| 苍溪县| 菏泽市| 临猗县| 慈溪市| 格尔木市| 吉安市| 南和县| 故城县| 鸡东县| 华亭县| 宁陵县| 民丰县| 贡嘎县| 如东县| 申扎县| 抚顺县| 台中市| 景洪市| 夏邑县| 陇川县|