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

java樹形菜單對象生成

 更新時間:2021年05月19日 12:02:28   作者:張兵游勇  
這篇文章主要為大家詳細介紹了java樹形菜單對象生成,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java樹形菜單對象生成的具體代碼,供大家參考,具體內(nèi)容如下

1、TreeNode對象

package com.ruoyi.system.utils.Vo;

import java.util.ArrayList;
import java.util.List;

public class TreeNode {

  /**
   * 節(jié)點ID
   */
  private Integer id;

  /**
   * 節(jié)點名稱
   */
  private String name;

  /**
   * 父節(jié)點ID
   */
  private Integer parentId;

  /**
   * 子節(jié)點列表
   */
  private List childrenList = new ArrayList();

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id=id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name=name;
  }

  public Integer getParentId() {
    return parentId;
  }

  public void setParentId(Integer parentId) {
    this.parentId=parentId;
  }

  public List getChildrenList() {
    return childrenList;
  }

  public void setChildrenList(List childrenList) {
    this.childrenList=childrenList;
  }
}

2、TreeUtil

package com.ruoyi.system.utils;

import com.ruoyi.system.utils.Vo.TreeNode;

import java.util.ArrayList;
import java.util.List;

public class TreeUtil {

  private List<TreeNode> treeNodeList =new ArrayList<>();

  public TreeUtil(List<TreeNode> list){
    treeNodeList = list;
  }

  /**
   * 獲取節(jié)點信息
   * @param nodeId 節(jié)點ID
   * @return
   */
  public TreeNode getNodeById(int nodeId){
    TreeNode treeNode = new TreeNode();
    for (TreeNode item : treeNodeList) {
      if (item.getId() == nodeId) {
        treeNode = item;
        break;
      }
    }
    return treeNode;
  }

  /**
   * 獲取子節(jié)點信息
   * @param nodeId 節(jié)點ID
   * @return
   */
  public List<TreeNode> getChildrenNodeById(int nodeId){
    List<TreeNode> childrenTreeNode = new ArrayList<TreeNode>();
    for (TreeNode item : treeNodeList) {
      if(item.getParentId() == nodeId){
        childrenTreeNode.add(item);
      }
    }
    return childrenTreeNode;
  }

  /**
   * 遞歸生成Tree結(jié)構(gòu)數(shù)據(jù)
   * @param rootId 根節(jié)點ID
   * @return
   */
  public TreeNode generateTreeNode(int rootId){
    TreeNode root = this.getNodeById(rootId);
    List<TreeNode> childrenTreeNode = this.getChildrenNodeById(rootId);
    for (TreeNode item : childrenTreeNode) {
      TreeNode node = this.generateTreeNode(item.getId());
      root.getChildrenList().add(node);
    }
    return root;
  }

  public static void main(String[] args) {
    List<TreeNode> nodeList = new ArrayList<>();
    TreeNode treeNode = new TreeNode();
    treeNode.setId(1);
    treeNode.setName("中國");
    treeNode.setParentId(0);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(2);
    treeNode.setName("北京市");
    treeNode.setParentId(1);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(3);
    treeNode.setName("浙江省");
    treeNode.setParentId(1);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(4);
    treeNode.setName("杭州市");
    treeNode.setParentId(3);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(5);
    treeNode.setName("西湖區(qū)");
    treeNode.setParentId(4);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(6);
    treeNode.setName("濱江區(qū)");
    treeNode.setParentId(4);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(7);
    treeNode.setName("金華市");
    treeNode.setParentId(3);
    nodeList.add(treeNode);
    TreeUtil treeUtil = new TreeUtil(nodeList);
    treeNode = treeUtil.generateTreeNode(1);
    System.out.println("樹狀結(jié)構(gòu)Json格式數(shù)據(jù):" + JsonUtils.objectToJson(treeNode, 1));
  }
}

3、JsonUtil

package com.ruoyi.system.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.List;

public class JsonUtils {

  // 定義jackson對象
  private static final ObjectMapper MAPPER = new ObjectMapper();

  /**
   * 將對象轉(zhuǎn)換成json字符串
   * @param obj 需轉(zhuǎn)換的對象
   * @param  flag Json格式化標識(0-否,1-是)
   * @return
   */
  public static <T> String objectToJson(T obj, int flag) {
    if (obj == null) {
      return null;
    }
    try {
      String string;
      if (flag == 1) {
        string = obj instanceof String ? (String) obj : MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
      } else {
        string = obj instanceof String ? (String) obj : MAPPER.writeValueAsString(obj);
      }
      return string;
    } catch (JsonProcessingException e) {
      e.printStackTrace();
    }
    return null;
  }

  /**
   * 將json結(jié)果集轉(zhuǎn)化為對象
   *
   * @param jsonData json數(shù)據(jù)
   * @param beanType 對象中的object類型
   * @return
   */
  public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
    try {
      T t = MAPPER.readValue(jsonData, beanType);
      return t;
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }

  /**
   * 將json數(shù)據(jù)轉(zhuǎn)換成pojo對象list
   * <p>Title: jsonToList</p>
   * <p>Description: </p>
   * @param jsonData
   * @param beanType
   * @return
   */
  public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
    JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
    try {
      List<T> list = MAPPER.readValue(jsonData, javaType);
      return list;
    } catch (Exception e) {
      e.printStackTrace();
    }

    return null;
  }

  public static void main(String[] args) {
    System.out.println("測試字符串對象:" + objectToJson("hello world", 1));
  }

}

4、運行結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決java web應(yīng)用線上系統(tǒng)偶發(fā)宕機的情況

    解決java web應(yīng)用線上系統(tǒng)偶發(fā)宕機的情況

    這篇文章主要介紹了解決java web應(yīng)用線上系統(tǒng)偶發(fā)宕機的情況,具有好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • ClassLoader雙親委派模式作用詳解

    ClassLoader雙親委派模式作用詳解

    這篇文章主要為大家介紹了ClassLoader雙親委派模式作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 關(guān)于Maven依賴沖突解決之exclusions

    關(guān)于Maven依賴沖突解決之exclusions

    這篇文章主要介紹了關(guān)于Maven依賴沖突解決之exclusions用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中的指令重排詳解

    Java中的指令重排詳解

    在 Java 中,指令重排是一種性能優(yōu)化技術(shù),它涉及到編譯器和處理器對程序中指令的執(zhí)行順序進行調(diào)整,以提高執(zhí)行效率,本文給大家詳細介紹了Java中的指令重排,需要的朋友可以參考下
    2023-12-12
  • Java加解密技術(shù)系列之RSA詳解

    Java加解密技術(shù)系列之RSA詳解

    出于安全考慮,網(wǎng)絡(luò)的傳輸中經(jīng)常對傳輸數(shù)據(jù)做加密和編碼處理,本篇文章主要介紹Java加解密技術(shù)系列之RSA詳解,非常具有實用價值,需要的朋友可以參考下。
    2016-10-10
  • Java中類的定義和初始化示例詳解

    Java中類的定義和初始化示例詳解

    這篇文章主要給大家介紹了關(guān)于Java中類的定義和初始化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java 中函數(shù)的參數(shù)傳遞詳細介紹

    java 中函數(shù)的參數(shù)傳遞詳細介紹

    這篇文章主要介紹了 java 中函數(shù)的參數(shù)傳遞詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Java如何替換字符

    Java如何替換字符

    文章介紹了Java中String類的replace()方法及其變體replaceFirst()的使用,包括如何替換單個字符、第一次出現(xiàn)的字符以及多個字符,通過示例展示了如何處理字符串中的特殊字符和空格
    2024-11-11
  • spring Roo安裝使用簡介

    spring Roo安裝使用簡介

    這篇文章主要介紹了spring Roo安裝使用簡介,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • maven安裝與環(huán)境配置圖文教程

    maven安裝與環(huán)境配置圖文教程

    這篇文章主要為大家詳細介紹了maven安裝與環(huán)境配置圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10

最新評論

定结县| 昔阳县| 高安市| 新郑市| 乌海市| 宜君县| 浦城县| 岢岚县| 连州市| 中江县| 防城港市| 浮梁县| 侯马市| 杭锦后旗| 大关县| 武汉市| 南川市| 麻城市| 阳春市| 甘孜县| 内江市| 灌阳县| 讷河市| 常宁市| 新干县| 泰州市| 德清县| 固安县| 旬邑县| 枞阳县| 临汾市| 金沙县| 麻城市| 铜陵市| 黎平县| 孟津县| 陇川县| 苍溪县| 文成县| 开原市| 富阳市|