java递归生成树结构_java递归生成树形菜单

java递归生成树结构_java递归生成树形菜单publicList getAllCommType(){  ListtreeList=newArrayList();  //取到父节点id为0,只有一个  ListtypeList=commType.getAllCommodityType();  for(Commodity_typetype:typeList){   Treetree=newTree();

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

public List<Tree>  getAllCommType(){

  List<Tree> treeList=new ArrayList<Tree>();
  //取到父节点id为0,只有一个
  List<Commodity_type> typeList=commType.getAllCommodityType();
  for(Commodity_type type :typeList){

   Tree tree=new Tree();
   tree.setId(type.getType_id()+””);
   tree.setPid(type.getParent_id());
   tree.setText(type.getName());
   List<Commodity_type> childList=commType.listChildren(type);
   if(childList.size()>0){

    tree.setState(“close”);
    tree.setChildren(getAllTreeList(childList));
   }
   treeList.add(tree);
  }
  
  return treeList;
 }
 

commType.getAllCommodityType()的查询语句如下:

select * from commodity_type where parent_id=0

commType.listChildren(type)的查询语句如下:

select * from commodity_type where parent_id=#{type_id}

 /**
  * 加载子树(递归加载子子…树)
  * @param subTreeList
  * @return
  */
 public List<Tree> getAllTreeList(List<Commodity_type> subTreeList) {

  List<Tree> treeList = new ArrayList<Tree>();
  for(Commodity_type type : subTreeList) {

   Tree tree = new Tree();
   tree.setId(type.getType_id()+””);
   tree.setPid(type.getParent_id());
   tree.setText(type.getName());
   List<Commodity_type> _subTreeList= commType.listChildren(type);
   if (_subTreeList.size() > 0) {

    tree.setState(“closed”);
    tree.setChildren(getAllTreeList(_subTreeList));
   }
   
   treeList.add(tree);
  }
  return treeList;
 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192358.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月14日 上午9:43
下一篇 2026年1月14日 上午10:15


相关推荐

  • Repeater嵌套绑定Repeater「建议收藏」

    Repeater嵌套绑定Repeater「建议收藏」Repeater嵌套Repeater的结构: cs代码:  Code private void RpTypeBind()   {       //GetQuestionTypeAndCount() 返回一个datatable        this.rptypelist.DataSource = LiftQuestionCtr.GetQuestio…

    2022年7月14日
    27
  • 项目运行指标:micrometer自定义metrics

    项目运行指标:micrometer自定义metricsmicrometer 自定义 metricsmicro 提供了基于 Java 的 monitorfacad 其与 springboot 应用和 prometheus 的集成方式如下图展示上图中展示的很清楚 应用通过 micrometer 采集和暴露监控端点给 prometheus prometheus 通过 pull 模式来采集监控时序数据信息 之后作为数据源提供给 grafana 进行展示 micrometer 支持的度量方式及在 springboot 中的应用示例 CounterCount 计数器 简单理解

    2025年7月17日
    4
  • WSL安装及升级WSL2

    WSL安装及升级WSL2Windows是目前市场占有率最高的桌面操作系统了,无论是软件丰富度和UI都算不错了,但是终端实在是鸡肋,CDM的UI丑的一批,而且功能好渣。整的我好几次都为了终端移步Linux。虽然说有Gitbash可以运行一些Linux命令,但是还是不中用啊就????????????幸好我们有了WSL(WindowsSubsystemforLinux),顾名思义就是Windows中可以用Linux了,当然命令也会…

    2022年6月22日
    192
  • Manus:中国 SaaS 的新出路?

    Manus:中国 SaaS 的新出路?

    2026年3月15日
    2
  • 腾讯免费安装OpenClaw引排队盛况,马化腾发文:没想到会这么火!

    腾讯免费安装OpenClaw引排队盛况,马化腾发文:没想到会这么火!

    2026年3月13日
    3
  • 内核态和用户态的区别[通俗易懂]

    内核态和用户态的区别[通俗易懂]当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序…

    2025年12月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号