首页 > 编程语言 >java返回树型结构

java返回树型结构

时间:2023-06-12 18:31:40浏览次数:40  
标签:返回 map set java electricalguar new 树型 type1 roots

//先查询出所有的数据

List<table> list = kineticEnergyFileImportService.getguzhang(ELECTRICALTYPE); Set<String> roots = new LinkedHashSet<>(); Map<String, Set<String>> map = new HashMap<>(); for (table faultdictionary : list) { //获取ELECTRICAL_GUAR字段添加到roots String electricalguar = faultdictionary.getELECTRICALGUAR(); roots.add(electricalguar); //获取type1,type2,type3 String type1 = faultdictionary.getTYPE1(); String type2 = faultdictionary.getTYPE2(); String type3 = faultdictionary.getTYPE3(); //获取numcode String numbercode = faultdictionary.getNUMBERCODE(); // 根据electricalguar获取对应的Set对象,如果该对象不存在,则创建一个新的LinkedHashSet对象, // 并将其存储到map中,并返回该对象,如果已经存在,则直接返回该对象。然后将type1添加到获取到的Set对象中。 Set<String> set = map.computeIfAbsent(electricalguar, key -> new LinkedHashSet<>()); set.add(type1); set = map.computeIfAbsent(electricalguar + "-" + type1, key -> new LinkedHashSet<>()); set.add(type2); set = map.computeIfAbsent(electricalguar + "-" + type1 + "-" + type2, key -> new LinkedHashSet<>()); set.add(type3); set = map.computeIfAbsent(electricalguar + "-" + type1 + "-" + type2 + "-" + type3, key -> new LinkedHashSet<>()); set.add(numbercode); } 根据根节点集合roots和存储子节点信息的map生成一个树形结构的数据结构,并将其保存到一个List中。具体实现过程如下:首先使用roots.stream()将roots转换为一个Stream,然后使用map()方法对每个根节点进行处理。对于每个根节点k,使用getChildren(map, k)方法获取其对应的子节点集合,并使用new Node(k, getChildren(map, k))将其封装成一个Node对象。然后使用collect(Collectors.toList())将所有的Node对象保存到一个List中,具体实现是将Stream转换为List<Node>类型。 List<Node> nodes = roots.stream().map(k -> new Node(k, getChildren(map, k))).collect(Collectors.toList()); 最终返回的List<Node>就是树形结构的数据,其中每个Node对象对应一个节点,包含节点名称和子节点集合 return Result.ok(nodes.get(0));

标签:返回,map,set,java,electricalguar,new,树型,type1,roots
From: https://blog.51cto.com/u_16158939/6464739

相关文章

  • java调用第三方接口,请求方式 get,传参方式 param形式非json。
    项目调用第三方接口,调用方式人家做了限制“请求方式get 传参方式param形式传参,非json”。所有有了下面的代码: importcom.alibaba.fastjson.JSONObject;importcom.spcp.platform.common.util.StringUtil;importcom.spcp.qypt.whpt.util.HttpClientUtil;importorg.spring......
  • java8随手记(包含idea连接远程分支出现Nothing to update问题)
    Steam流一、映射1.map()和.flatMap()map将数据放入集合中,返回Steam流中。例如:map集合{1,2,3},返回Steam流[a,b,c,{1,2,3}]flatMap将将集合中的数据,返回Steam流中.例如:flatMap集合{1,2,3},返回Steam流中[a,b,c,1,2,3]注意:add与addAll有同样的效果。   ......
  • java 中锁的定义
    引用资料按功能分类 读锁 readLock  写锁writeLock   自选锁  递归锁(可重入锁)按实现分类 乐观锁 当前环境读数据的多,写数据的少,并发读多,并发写少。因此,在读数据的时候,并不会给当前线程加锁,在写数据的时候,会进行判断当前的值与期望值时候相同,如果相同则进......
  • Java开发环境搭建
    以下内容均是来自于尚硅谷教育提供电子教材节选【存在部分修改】,方便个人阅读复习!如有侵权,联系删除!Java开发环境搭建(掌握)1什么是JDK、JREJDK(JavaDevelopmentKit):是Java程序开发工具包,包含JRE和开发人员使用的工具。**JRE**(JavaRuntimeEnvironment):是Java程序的......
  • Java获取本机IP
    原文链接可以使用getLocalHost命令:importjava.net.InetAddress;publicclassMain{publicstaticvoidmain(String[]args)throwsException{InetAddressaddr=InetAddress.getLocalHost();System.out.println("LocalHostAddress:"+addr......
  • Java中List集合的subList方法
        一、说明publicList<E>subList(intfromIndex,inttoIndex){...}作用:返回包含从索引fromIndex(包括)到索引toIndex(不包括)元素的List集合。 二、测试下面是关于subList的一些测试。首先,创建一个ArrayList对象,并添加一些元素。然后用subList方法获取一个新的集合。......
  • JavaSE入门准备
    JDKJavaDevelopmentKit(java开发者工具)包含JRE和JVMJREJavaRuntimeEnvironment(java运行环境)JVMJavaVirtualMachine(java虚拟机)Java文件编译与运行打开cmd进入到当前文件夹下javacjava编译java文件,会生成一个class文件javaclass运行class文件idea快捷......
  • java复习
    基本语法一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。类:类是一个模板,它描述一类对象的行为和状态。class对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。new方法:方法......
  • JAVA-IDE最新版本可用CODE
    干啥用的不言而喻了,准备开始白嫖最新的了嘛?发车~~文章目录一、百度网盘链接二、下载最新版20221.无脑安装下一步2.安装后,根据下载文件开始白嫖之路总结一、百度网盘链接链接:https://pan.baidu.com/s/1BePBfoFjFrU_HgOpIzHBqg?pwd=afu2提取码:afu2二、下载最新版20221.无脑安......
  • java实现dwg转pdf
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、无奈选择第二种二、jar引入1.jar地址2.使用jar,完成dwg转为pdf总结前言由于公司需要最近研究一个cad文件需要在浏览器中展示,经过研究发现大致有两种方式:1将.dwg转换为vds文件,就可以在web端展示......