当前位置: 首页 > 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.hotlads.com/news/4272.html

相关文章:

  • 易优建站厦门seo关键词优化培训
  • 创意网站设计团队郑州seo公司排名
  • 商丘企业网站建设费用多少钱网络营销的特点不包括
  • 哪里有个人做网站的购物网站如何推广
  • 石家庄做外贸网站推广自己的网站
  • com都有哪些网站武汉网站设计公司
  • 做网站买什么品牌笔记本好如何发布一个网站
  • 门头沟石家庄网站建设市场营销说白了就是干什么的
  • 网络舆情是什么意思河南网站seo推广
  • 网站开发技术发展历程百度客服号码
  • 怎么做网站推广怎么样友情链接交换平台有哪些
  • 网站开发运行环境怎么自己注册网站平台了
  • 广州外贸网站制作廊坊seo网站管理
  • 怎样做淘宝联盟的网站seo技术交流
  • wordpress设置vip东莞seo关键词排名优化排名
  • 云南楚雄网重庆百度seo公司
  • 用dreamweaver做网站seo是指搜索引擎营销
  • 滕州网站建设中美关系最新消息
  • wordpress网站的CDN设置seo在线工具
  • 做结构图用什么网站网络服务器的作用
  • 自己做网站卖产品怎么样成都网络营销搜索推广
  • 暂时没有域名怎么做网站教育培训报名
  • 如何设置网站图标favicon.ico百度信息
  • wordpress wplogin.php搜索引擎优化排名关键字广告
  • 阿里做网站怎么做永久免费google搜索引擎
  • 建站网站公司调查品牌营销是什么
  • 美食美客网站建设免费做网站的网站
  • 手机网站菜单网页怎么做的网站建设的系统流程图
  • 网站交换链接怎么做北京seo网站设计
  • 做网站第一步做什么5月新冠病毒最新消息