首页 > 其他分享 >后端集合操作汇总

后端集合操作汇总

时间:2023-11-03 14:15:08浏览次数:33  
标签:toList Collectors stream List 汇总 collect 集合 操作

   1、获得集合中某一列数据形成一个新的集合

List<String> setCode =resultList.stream().map(e -> e.getSetCode()).collect(Collectors.toList());
2、集合中对象类型转换
List<RealityTaskEx> exList = ModelConverterUtils.convert(taskList, RealityTaskEx.class);
public static <T> List<T> convert(Collection<?> sources, Class<T> targetClass) {
if (sources == null) {
return null;
}
List<T> targets = Lists.newArrayList();
if (!CollectionUtils.isEmpty(sources)) {
targets = sources.stream().map(x -> convert(x, targetClass)).collect(Collectors.toList());
}
return targets;
}
3、数组转成集合
List<String> list = Arrays.asList(person);//String[] person
// List<String> 转成List<Long>
List<Long> amList = list.stream().map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());
4、集合根据某个字段去重
personList.stream().distinct().collect(Collectors.toList());
5、筛选符合条件的数据集合
List<RealitySchedule> schedule =sheduleList.stream().filter(e -> e.getSetId() == Long.parseLong(realitySet[0])).collect(Collectors.toList());
//将集合转换成String类型
nameSet +=String.join(",",pmNameList.stream().distinct().filter(Objects::nonNull).collect(Collectors.toList()));
6、集合中是否包含某个对象值
Boolean exist= taskTypeList.stream().filter(t->t.equals(ConstantEnum.TASK_TYPE_MORING.getCode())).findAny().isPresent();
7、获取yml文件中的值
import org.springframework.beans.factory.annotation.Value;
@Value("${spring.application.name}")
private String applicationName;
8、得到集合中的多个值
List<String> outBoxList = boxes.stream().map(s ->s.getId()+","+s.getBranchId()).collect(Collectors.toList())
outBoxList.stream().forEach(u ->{
// 根据逗号分开多个参数
String[] boxBranch = u.split(",");
// 查询集合中是否存在某个对象
OutWarehouseDetail detail =outList.stream().filter(o ->o.getBoxId().equals(boxBranch[0])).findFirst().orElse(null);
})
9、集合切片
<!--list 切片-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
import org.apache.commons.collections4.ListUtils;
   // 根据需求,将款箱三列展示
                        List<List<BaseCashBoxInfoEx>> partition = ListUtils.partition(returnList,3);
                        if(CollectionUtils.isNotEmpty(partition)){
                                List<BaseCashBoxInfoEx> first =new ArrayList<>();
                                List<BaseCashBoxInfoEx> second = new ArrayList<>();
                                List<BaseCashBoxInfoEx> third =new ArrayList<>();
                                partition.stream().forEach( p ->{
                                    int count =p.size();
                                    if(count == 1){
                                        first.add(p.get(0));
                                    }else if(count == 2){
                                        first.add(p.get(0));
                                        second.add(p.get(1));
                                    }else{
                                        first.add(p.get(0));
                                        second.add(p.get(1));
                                        third.add(p.get(2));
                                    }
                                });
                                ex.setFirstBox(first);
                                ex.setSecondBox(second);
                                ex.setThirdBox(third);
                         }
 

标签:toList,Collectors,stream,List,汇总,collect,集合,操作
From: https://www.cnblogs.com/flyShare/p/17807324.html

相关文章

  • python操作svg
    在Python中,您可以使用不同的库来操作SVG文件。一种流行的选择是使用xml.etree.ElementTree来解析和操作SVG文件。以下是一个简单的示例,演示如何使用Python解析和操作SVG文件:importxml.etree.ElementTreeasET#读取SVG文件tree=ET.parse('input.svg')root=tree.getro......
  • Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8
    本篇作为《Vue+OpenLayers入门教程》和《Vue+OpenLayers实战进阶案例》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速......
  • 汇编-nop空操作
         ......
  • 建行POS更新操作流程
     建行POS更新操作流程1.退出应用,直接进入“APP应用中心”,如图1所示。若进入系统原生桌面,则找到“APP应用中心”图标(如图2所示),点进进入。图1——APP应用中心图2——系统原生桌面 2.点击带有NEW更新标识的“茂业收银台”应用,进入更新页面,点击页面最下方的更新按钮,下载完......
  • 「UI 测试自动化selenium」汇总
    《selenium基础之java实现》seleniumRC环境配置菜鸟学自动化测试(一)----seleniumIDE菜鸟学自动化测试(二)----seleniumIDE功能扩展菜鸟学自动化测试(三)----selenium命令菜鸟学自动化测试(四)----selenium命令之验证页面元素菜鸟学自动化测试(五)-----selenium命令之定位页面元素菜......
  • Windows、Linux 和 Mac:操作系统之间的比较有哪些
    Windows系统、Linux系统与Mac系统:操作系统的对比与选择操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。以下是W......
  • vue3 用法汇总(二)
    1、列表中鼠标放在不同单元格显示不同的背景颜色<el-tablev-resize:44:data="tableData"class="tablemarking-table"borderstyle='margin:10px0px'highlight-current-rowelement-loadi......
  • 串口的相关知识汇总连接
    串口和USB的区别串口通信的介绍WIKI[RS-232]接口标准......
  • Python selenium操作cookie
    如何使用Selenium处理Cookie,今天彻底学会了(qq.com)"""1.学习目标:掌握selenium对cookie操作2.语法2.1获取所有cookiedriver.get.cookies()返同列表格式字典类型[{},{},{}]2.2添加cookiedriver.add_cookie(参数)参数:字典格......
  • 操作系统实验——进程管理的算法实现
    前言笔者在大学下属的事业单位上班,最近去帮着带下操作系统的实验课,这里随手水点参考代码,欢迎各位领导老师莅临指正实验目标编写一个简单的进程调度器实验内容进程控制块(PCB)的定义与管理进程调度算法的实现进程创建、销毁和切换给定一批进程对比3-4种调度算法的时间(自选算......