返回顶部
首页 > 资讯 > 后端开发 > Python >java树形菜单对象生成
  • 427
分享到

java树形菜单对象生成

2024-04-02 19:04:59 427人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了java树形菜单对象生成的具体代码,供大家参考,具体内容如下 1、Treenode对象 package com.ruoyi.system.utils.Vo;

本文实例为大家分享了java树形菜单对象生成的具体代码,供大家参考,具体内容如下

1、Treenode对象


package com.ruoyi.system.utils.Vo;

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

public class TreeNode {

  
  private Integer id;

  
  private String name;

  
  private Integer parentId;

  
  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;
  }

  
  public TreeNode getNodeById(int nodeId){
    TreeNode treeNode = new TreeNode();
    for (TreeNode item : treeNodeList) {
      if (item.getId() == nodeId) {
        treeNode = item;
        break;
      }
    }
    return treeNode;
  }

  
  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;
  }

  
  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("西湖区");
    treeNode.setParentId(4);
    nodeList.add(treeNode);
    treeNode = new TreeNode();
    treeNode.setId(6);
    treeNode.setName("滨江区");
    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("树状结构JSON格式数据:" + 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();

  
  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;
  }

  
  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;
  }

  
  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、运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java树形菜单对象生成

本文链接: https://lsjlt.com/news/126333.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java树形菜单对象生成
    本文实例为大家分享了java树形菜单对象生成的具体代码,供大家参考,具体内容如下 1、TreeNode对象 package com.ruoyi.system.utils.Vo; ...
    99+
    2024-04-02
  • java实现树形菜单对象
    本文实例为大家分享了java实现树形菜单对象的具体代码,供大家参考,具体内容如下 1、SysMenu package com.zy.shiro.domain; import c...
    99+
    2024-04-02
  • JAVA递归生成树形菜单的实现过程
      递归生成一个如图的菜单,编写两个类数据模型Menu、和创建树形的MenuTree。通过以下过程实现:     1.首先从菜单数据中获取所有根节点。     2.为根节点建立次级子...
    99+
    2024-04-02
  • JAVA递归生成树形菜单的实现方法是什么
    今天小编给大家分享一下JAVA递归生成树形菜单的实现方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。  递归生成一个...
    99+
    2023-06-26
  • 利用Freemarker怎么生成一个树形导航菜单
    利用Freemarker怎么生成一个树形导航菜单?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。很多导航菜单是树形的,即一级一级往下分,这样的结构固然需要用递归来处理。 对于...
    99+
    2023-05-31
    freemarker 树形导航
  • java中怎么实现树形菜单
    在Java中实现树形菜单可以使用树形数据结构来存储菜单项,然后通过递归的方式来构建树形菜单。 以下是一个简单的示例代码实现树形菜单:...
    99+
    2024-03-13
    java
  • golang 实现菜单树的生成方式
    golang 实现菜单树的生成,包括菜单节点的选中状态、半选中状态,菜单的搜索。 1 该包提供两个方法根接口 1.1 GenerateTree(nodes, selectedNode...
    99+
    2024-04-02
  • Java构建树形菜单的实例代码(支持多级菜单)
    效果图:支持多级菜单。菜单实体类:public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private Stri...
    99+
    2023-05-31
    java 树形菜单 ava
  • ASP.NET MVC实现树形导航菜单
    在需要处理很多分类以及导航的时候,树形导航菜单就比较适合。例如在汽车之家上: 页面主要分两部分,左边是导航菜单,右边显示对应的内容。现在,我们就在ASP.NET MVC 4 下临摹...
    99+
    2024-04-02
  • java实现遍历树形菜单的方法有哪些
    这篇文章将为大家详细讲解有关java实现遍历树形菜单的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下。OpenSessionView实现:package org.web;imp...
    99+
    2023-05-30
    java
  • EasyUI如何实现树形功能菜单
    这篇文章给大家分享的是有关EasyUI如何实现树形功能菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。页面展示截图如下:为了实现以上效果,在开始前必须先将环境配置一下。第一步:...
    99+
    2024-04-02
  • Java中Class对象生成原理
    这篇文章主要讲解了“Java中Class对象生成原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中Class对象生成原理”吧!Class对象的生成方式如下:Class.forNam...
    99+
    2023-06-17
  • java编程两种树形菜单结构的转换代码
    首先看看两种树形菜单结构的代码示例。SingleTreeNode:package com.zzj.tree;public class SingleTreeNode {private int id;private int pId;privat...
    99+
    2023-05-30
    java 树形菜单 转换
  • Vue组件tree如何实现树形菜单
    这篇文章主要为大家展示了“Vue组件tree如何实现树形菜单”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue组件tree如何实现树形菜单”这篇文章吧。vue...
    99+
    2024-04-02
  • 基于zTree树形菜单的示例分析
    小编给大家分享一下基于zTree树形菜单的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在每个节点添加 id 和 pid...
    99+
    2024-04-02
  • vue3+ts实现树形组件(菜单组件)
    目录前言全局注册组件组件的实现树形组件的基本结构:完善组件(添加点击事件,过渡效果)✌️✌️添加过渡总结:前言 之前在使用element-plus的使用,使用el-menu组件,并且...
    99+
    2023-05-18
    vue3 ts 树形组件 vue3 ts菜单组件
  • Vue+Elementui实现树形控件右键菜单
    本文实例为大家分享了Vue+Element ui实现树形控件右键菜单的具体代码,供大家参考,具体内容如下 需求 实现树形控件右键菜单功能,有添加文件、删除文件、重命名功能 一、按需引...
    99+
    2024-04-02
  • 树形结构的菜单表设计与查询
    开发中经常会遇到树形结构的场景,比如:导航菜单、组织机构等等,但凡是有这种父子层级结构的都是如此,一级类目、二级类目、三级类目。。。 对于这种树形结构的表要如何设计呢?接下来一起探讨一下 首先,想一个问题,用非关系型数据库存储可不可以? ...
    99+
    2016-09-24
    树形结构的菜单表设计与查询
  • Vue2递归组件如何实现树形菜单
    小编给大家分享一下Vue2递归组件如何实现树形菜单,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果如下图,点击后打开二级菜单,...
    99+
    2024-04-02
  • 利用java怎么构造一个无限层级的树形菜单
    这期内容当中小编将会给大家带来有关利用java怎么构造一个无限层级的树形菜单,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。构造一个实体类,用来存储节点,所以我们构造的需要四个对象(id,pid,name,...
    99+
    2023-05-31
    java ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作