我在工作中使用到的stream流【案例2 <List<List>>结构】
创始人
2025-05-29 22:11:56
0

文章目录

    • 介绍
    • 原始代码
    • 修改后代码
    • 讲解

介绍

字段中有个 1,2,3,4 形式的varchar LocationTypeIds字段
前端携带相应的字段中的某个值typeId进行接口请求
期望获得LocationTypeIdtypeId值的记录

原始代码

locationInfoDTOListList 类型

 LabelValue children = new LabelValue();for(int i =0;i//所有的子集LabelValue children = new LabelValue();for (String temp:locationInfoDTOList.get(i).getLocationTypeIds().split(",")) {if(Objects.equals(typeId, temp)){//如果某个子集的ids包括的上传的,那就把子集放在父里children.setLabel(locationInfoDTOList.get(i).getLocationName());children.setValue(locationInfoDTOList.get(i).getId());children.setKey(locationInfoDTOList.get(i).getLocationTypeIds());parent.add(children);}}}

修改后代码

locationInfoDTOList.stream()
.filter(info -> info.getLocationTypeIds().contains(typeId))
.map(info -> new LabelValue(info.getId(),info.getLocationTypeIds(),info.getLocationName(),info.getId()))
.collect(Collectors.toList())

讲解

  1. 使用 stream() 方法将列表转换为一个流对象
  2. 然后使用 filter() 方法过滤出包含指定 typeId 的地点信息对象
    就不需要再使用split(‘,’)按逗号分割返回一个数组了
  3. 这个过滤条件是一个 Lambda 表达式,使用箭头符号 -> 将输入参数 info 映射到一个布尔值结果
  4. 接下来,使用 map() 方法将符合条件的地点信息对象转换为新的 LabelValue 对象
  5. 这个转换也是使用一个 Lambda 表达式,将输入参数 info 映射到一个 LabelValue 对象
  6. LabelValue 对象的构造函数接受四个参数,分别是 idlocationTypeIdslocationNameid (id,key,label,value)
  7. 最后,使用 collect() 方法将转换后的 LabelValue 对象收集到一个新的列表中,并使用 toList() 方法指定收集器类型为列表
  8. 整个代码的返回结果就是包含符合过滤条件的 LabelValue 对象的列表

相关内容

热门资讯

Altium Designer... 目录Altium Designer(AD)软件使用记录15-PCB布线部分之优化和DRC处理一、线路...
通俗易懂了解Hadoop(更新... 从本书第5、6、7、8章,学习云计算开发相关知识 这是第五章 文章目录Hadoo...
LeetCode-198. 打... 目录暴力递归动态规划 题目来源 198. 打家劫舍 暴力递归 class Solution {pub...
js学习11(客户端存储) 目录 web storage IndexDB   web storage ### 前言࿱...
target.closest妙... 首先看下MDN:Element.closest() - Web APIs | MDN ...
并发编程(一)-Thread ... 一、什么是线程线程(英语:thread)是操作系统能够进行...
小白学Pytorch系列--T... 小白学Pytorch系列–Torch API (9) Spectral Ops stft 短时傅立...
Java二叉树的前中后序遍历 Java二叉树的前中后序遍历1.前序遍历1.1前序遍历概念1.2前序遍历习题2.中序遍历2.1中序遍...
遗传算法原理及案例解析 一、遗传算法原理 遗传算法—进化算法(Genetic Algorithm GA...
朴素贝叶斯学习报告 报告 朴素贝叶斯算法描述公式:  案例计算步骤: 一个数据集中有两个样本...
算法小课堂(一)暴力枚举 、 目录 一、概念 1.1相关概念 1.2应用场景 1.3局限性 二、相关问题 2.1例题1:统计 ...
OpenHarmony之doc... Docker使用示例 docker移植至OpenHarmony的过程可参考:https...
懒人专用高并发:Actor模型 传统多线程实现方式 public class MultiThreadExample implemen...
WEB安全 HTML基础 1.简单的HTML页面架构 charset  编码 gbk gbk2...
算法基础---基础算法(二) 文章目录 高精度         高精度加法高精度减法高精度乘法高精度除法前缀和 一维前缀和二维前缀...
【Docker】镜像的原理定制... 文章目录镜像是什么UnionFS(联合文件系统)Docker镜像加载原理...
vue3常用 Composit... 二、常用 Composition API 官方文档 1.拉开序幕的setup语法糖 理解࿱...
【MySQL】实验二 简单查询 目录 1. 查询课程代号为1301的成绩不及格的成绩信息 2. SQL查询:查询employee的j...
spring启动时加载外部配置... 平常同学们使用spring搭建工程时一些应用配置信息(例如数据库的连接配置、中间件的连...
《他是谁》爆火,优酷的成功并非... 今年国产电视剧市场又进入了新一轮的爆款时代,观众在前面刚送走《三体》《狂飙》ÿ...