当前位置: 首页 > news >正文

喀什市建设局网站查证件怎样建网站教程

喀什市建设局网站查证件,怎样建网站教程,淄博周村学校网站建设公司,服装微信商城网站建设你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅:869192208 文章目录 前言代码实现定义测试实体类实现方法 前言 最近遇到一个地区数据需要转换成树的需求,研究了一种…

你知道的越多,你不知道的越多
点赞再看,养成习惯
如果您有疑问或者见解,欢迎指教:
企鹅:869192208

文章目录

        • 前言
        • 代码实现
          • 定义测试实体类
          • 实现方法

前言

最近遇到一个地区数据需要转换成树的需求,研究了一种新方法,不使用传统递归的方式,而是使用 stream 流的方式构建树。

代码实现
定义测试实体类
import lombok.Data;
import java.util.List;/*** <h2> </h2>** @author xymy* @date 2023/12/21 17:17*/
@Data
public class TsModel {private String id;private String name;private String pid;private List<TsModel> childs;
}
实现方法
public static void main(String[] args) {String str = "[\n" +"    {\"id\":\"1\",\"name\":\"张三\",\"pid\":\"\"},\n" +"    {\"id\":\"2\",\"name\":\"张三2\",\"pid\":\"\"},\n" +"    {\"id\":\"3\",\"name\":\"张三3\",\"pid\":\"\"},\n" +"    {\"id\":\"4\",\"name\":\"张三4\",\"pid\":\"\"},\n" +"    {\"id\":\"33\",\"name\":\"张三33\",\"pid\":\"3\"},\n" +"    {\"id\":\"330\",\"name\":\"张三330\",\"pid\":\"3\"},\n" +"    {\"id\":\"3301\",\"name\":\"张三330\",\"pid\":\"330\"},\n" +"    {\"id\":\"41\",\"name\":\"张三41\",\"pid\":\"4\"}\n" +"]";List<TsModel> tsModels = JSONArray.parseArray(str, TsModel.class);Map<String, List<TsModel>> pModels = tsModels.stream().collect(Collectors.groupingBy(ts -> StringUtils.isBlank(ts.getPid()) ? "" : ts.getPid()));List<TsModel> childTs = new ArrayList<>();for (TsModel tsModel : tsModels) {String id = tsModel.getId();List<TsModel> childModel = pModels.get(id);if (CollectionUtils.isNotEmpty(childModel)) {tsModel.setChilds(childModel);childTs.addAll(childModel);}}Set<String> childSeqs = childTs.stream().map(t -> t.getId()).collect(Collectors.toSet());List<TsModel> newTree = tsModels.stream().filter(tsm -> !childSeqs.contains(tsm.getId())).collect(Collectors.toList());System.out.println(JSON.toJSONString(newTree));}

打印结果:

[{"id": "1","name": "张三","pid": ""},{"id": "2","name": "张三2","pid": ""},{"childs": [{"id": "33","name": "张三33","pid": "3"},{"childs": [{"id": "3301","name": "张三330","pid": "330"}],"id": "330","name": "张三330","pid": "3"}],"id": "3","name": "张三3","pid": ""},{"childs": [{"id": "41","name": "张三41","pid": "4"}],"id": "4","name": "张三4","pid": ""}
]

至此,就实现了列表转成树的逻辑。

http://www.yayakq.cn/news/83938/

相关文章:

  • 龙岩做网站开发哪家厉害有了源码该怎么建立app
  • 广州企业网站哪家好如何进行搜索引擎优化
  • 国外优秀ui设计网站软件工程师级别
  • 电子商务网站开发方式免费短网址生成器
  • 自己怎么做电影网站可以赚钱吗如何整理做网站的素材
  • 网站优化和推广方案pptdjango做网站怎样
  • 邵阳市 网站建设哪个网站是用vue做的
  • 网站建设倒计时单页源码动画设计参考文献
  • 做网站如何防止被抄袭微信如何进入公众号
  • ps做网站图片水印阿里邮箱登录
  • 凡科网站代理登录入口百度导航
  • 网站开发职能城乡和住房建设部证书信息网
  • 网站怎么做404页面的跳转无线网址域名注册
  • 深圳住房与建设网站网络编程学校
  • 深圳专业网站制作费用淘宝是什么语言做的网站
  • 专做外贸库存的网站上海企业网站推广方法
  • 百度收录网站之后又怎么做企业网站备案策划
  • 网站开发近期市场浙江省建设厅网站在哪里
  • 网站建设视频教程最新网站seo网络优化公司
  • 什么是网站建设技术新品牌推广方案
  • 上海营销型网站代理随机网站生成器
  • 电子厂网站建设方案书怎么写wordpress中文插件seo百度
  • 电商网站模板下载wordpress发送页面失败
  • 镇平县两学一做网站买域名要多少钱一个
  • 蓝色商务网站模板学校网站怎么做的好
  • 给公司做网站要多少钱俄乌今天最新军事动态
  • 找设计网站公司ppt模板免费下载 素材第一ppt
  • 响应式网站和自适应网站南宁本地网站
  • 网站建设蛋蛋28建设工程公司组织架构图
  • 蜂蜜做的好网站或案例北京企业官网建设