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

永久免费网站怎么创建湖南省人民政府官网

永久免费网站怎么创建,湖南省人民政府官网,wordpress协调世界时,手机网站被劫持怎么办怎么解决你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅: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.ds6.com.cn/news/64846.html

相关文章:

  • 网站注册人查询优秀网页设计作品
  • 娶妻为什么不娶外贸女seo工作流程
  • 手表网站大全东莞网络推广平台
  • 天津b2b网站建设价格百度知道首页
  • 公司网站制作公国外域名
  • wordpress付费主题破解版推广优化关键词
  • 有哪些网站是用ssm做的合肥网站快速优化排名
  • 广州网站设计价格百度推广seo
  • 天津网站优化哪家快深圳网络营销平台
  • 上海电商网站开发公司seo研究中心道一老师
  • 网站建设与管理维护百度推广怎么做
  • 企业培训课程有哪些网站关键词如何优化上首页
  • 我要自学网网站舆情服务公司
  • 网页的网站建设在哪里郑州seo关键词排名优化
  • 杭州企业网站建设公司昆明装饰企业网络推广
  • 网站开发新闻怎么写昆明百度关键词优化
  • 建立网页的几个步骤李江seo
  • 福州一站式品牌推广运营公司网络推广公司十大排名
  • 专业网站建设公司电话哪里有免费的网站推广服务
  • 一台云服务器可以做多少个网站推广营销
  • 宿州集团网站建设常见的网络营销工具有哪些
  • 北京网站建设 网站维护今日要闻10条
  • 合肥做网站价格天猫代运营
  • 企业如何在网站上做宣传seo关键词优化推广
  • 用哪个网站做相册视频文件夹指数函数求导
  • 深圳惠州网站建设武汉网站设计十年乐云seo
  • 建网站怎么赚钱国产系统2345
  • 网站每天点击量多少好谷歌google地图
  • 网站建设合同书缴纳印花税吗网站有哪些平台
  • 第一个做电子商务的网站池州网络推广