使用stream流对数据进行处理
2024-09-08 18:48:07
1. 使用场景
本次使用是通过条件查询出所需要的多个字段后,对其进行处理(一个条件查询多个下拉框内容,并对每个下拉框内容封装对象,进行返回)
2. 代码
点击查看代码
//获取所有需要的数据
List<User> user= userService.getByName(command.getName());
//新建一个list用于存放处理过的数据
List<CustomerCode> codeList = new ArrayList<>();
//使用流转成map,循环塞值,把每一个有值的实体类放入list中,最后转成list集合
user.stream().map(users -> {
CustomerCode code = new CustomerCode();
if (Objects.nonNull(conditions.getCustomerCodeName())) {
code.setId(conditions.getCustomerCodeId());
code.setName(conditions.getCustomerCodeName());
codeList.add(code);
}
return code;
}).collect(Collectors.toList());
//新建list,对已经存入值的list进行去重
List<CustomerCode> codes = new ArrayList<>();
//判断list是否为空,必须判断是否为空,否则这里会报错
if (codeList.size() > 0) {
//使用treeset通过name对list进行去重
codes = codeList.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(
Comparator.comparing(
CustomerCode::getName))), ArrayList::new));
}
---------------end-----本次是通过一个条件查询出五个下拉框所需数据,并对其进行分处理,返回五个下拉框的内容--------------
最新文章
- Spring、hibernate以及struts2三大框架的整合
- 去除inline-block元素间间距
- Web APi之手动实现JSONP或安装配置Cors跨域(七)
- vs2010集成git指南
- SpringMVC RequestMapping &; 请求参数
- uml 推荐文章
- JDBC链接MySQL和Oracle
- 添加crontab为什么要重定向输出到/dev/null
- 虚拟机开机提示:This virtual machine appears to be in use
- mysql存储过程出现OUT or INOUT argument 10 for routine
- C#操作XML的完整例子——XmlDocument篇(转载,仅做学习之用)
- 关于写的Java书籍进展
- User Parameters(用户参数)
- Vue2.x源码学习笔记-Vue源码调试
- 使用ajax的post方式下载excel
- 数据结构 BM算法
- 【转】Windows下Python快速解决error: Unable to find vcvarsall.bat
- Scrum Meeting 博客目录
- cookie是如何保存到客户端,又是如何发送到服务端
- C++中的字符数组与字符指针
热门文章
- Quartz 使用教程
- 02安装一个最小化的Hadoop
- Docker使用阿里云拉取配置源也无法拉取的镜像-github镜像镜像gcr.io
- VSCode 创建flutter项目和运行、调试、热更新项目
- Java基础1-1-3—java基础语法(条件控制语句)
- linux环境编程(3): 使用POSIX IPC完成进程间通信
- springboot使用EasyExcel,导出数据到Excel表格,并且将Excel表中数据导入
- 关于Mysql外键从新学习
- dotnet 8 preview 1 即将发布
- P14_协同工作-开发者的权限说明以及如何维护项目成员