当前位置: 首页 > 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/428493/

相关文章:

  • 回收类型网站如何做自贸区注册公司
  • 网站开发与网页后台开发现在可以做网站么
  • 闵行网站设计开发和发布网站的主要流程
  • 浙江网站建设公司地址做哪个外贸网站不用交费
  • 安徽省六安市建设工程信息网seo关键词优化外包公司
  • 深圳商城网站建设报价单wordpress企业站制作
  • 定西市建设网站费用IP网站登记
  • 网站代码字体变大洛阳市住房和城乡建设网站
  • vps服务器怎么创建多个网站网站建设职位有什么
  • 自己做网站要会什么软件下载公司网站建设费用如何做账
  • 运行一个网站的成本软件开发分工5个角色
  • 大题小做网站网站建设与管理行业发展情况
  • 网站建设业务员在哪里接单成都住建局官网站首页
  • 做网站开发服务商网站后台不能排版
  • 南宁企业网页设计一个网站如何做seo优化
  • 重庆网站建设求职简历c 做的网站怎么上传图片
  • 做网站的价钱创建网站需要多少钱
  • python3的网站开发阐述网络推广的主要方法
  • 长春网站开发推荐响应式网站源代码
  • 重庆五号线金建站织梦网站建设考试
  • 请人帮忙做淘宝网站多少钱招聘网站建设费用多少钱
  • 网站经营网络备案信息获奖类网站建设推广策划案
  • 网站开发建设推荐用书怎样做自己的网站
  • 网站对网络营销的作用wordpress 源文件导入
  • 学校网站方案网站集约化建设2019年4月
  • 哈密伊吾县建设局网站wordpress加入侧边栏
  • 中小企业免费网站建设企业门户网站模板html上线
  • 学校网站的建设方案外贸网站怎么换域名
  • 关键词爱站网中国华电集团电子商务平台
  • 网站的类型有哪些建立公司网站视频