首页 > 编程语言 >java List stream 操作

java List stream 操作

时间:2022-12-02 16:44:47浏览次数:39  
标签:toList java stream Collectors List collect pids

一、 Stream操作

1、精确匹配并获取任意一个


Report report = reportList.stream().filter(item -> item.getReportNo().equals(mp4ReportNo)).findFirst().orElse(null);

2、精确匹配并获取任意一个

 childs = childs.stream().map(child -> {
                List<String> pids = null;
                if (StringUtils.isNotEmpty(child.getpIds())) {
                    pids = new ArrayList<>(Arrays.asList(child.getpIds().split(",")));
                    if (!pids.contains(techniqueStation.getMid().toString())) {
                        pids.add(techniqueStation.getMid().toString());
                    }
                } else {
                    pids = new ArrayList<>();
                    pids.add(techniqueStation.getMid().toString());
                    child.setpIds(String.join(",", pids));
                }

                return child;

            }).collect(Collectors.toList());

3、排序

 fileInfos = fileInfos.stream().sorted(Comparator.comparing(FileInfo::getVersionNo).reversed()).collect(Collectors.toList());

4、获取List中 bean的某一属性的List

List<Long> fileInfoIds=reporttemplates.stream().map(Reporttemplate::getSystemFileId).collect(Collectors.toList());

testItemList = testItemList.stream().collect(

            Collectors.collectingAndThen(

                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TestItem::getMid))), ArrayList::new)

    );

5、 判断是否存在

list.stream.filter(m->m.getName().equals("张三")).findAny().isPresent();

6、逗号拼接的字符串转List 或者其他的类型

  List<Long> orgIds = Arrays.stream(needPlanOrgs.split(",")).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());

7、List转 数组

int[] arr = list.stream().mapToInt(Integer::intValue).toArray();

8、两个List 根据某个属性求差集

list = list.stream().filter(m -> !modelInfos.stream().map(d -> d.getOfferModelId()).collect(Collectors.toList()).contains(m.getMid())).collect(Collectors.toList());

标签:toList,java,stream,Collectors,List,collect,pids
From: https://www.cnblogs.com/kangjunyun/p/16944888.html

相关文章

  • 算法工程师资料分享(算法基础 推荐算法 编程 python java c++ shell sql 数据结构 竞
    关注公众号:后厂村搬砖工。回复:学习资料汇总即可领取目录一、算法基础1.1学习路线1.2学习资料推荐二、编程能力2.1Python编程2.2Java编程2.3C++编程2.4Shell......
  • C#中listview实现排序
    【问题】:当点击列标题的时候,能够完成对该列排序,再次点击,按照该列反序排序。 【解决方法】:使用 IComparer接口。 例子:1.usingSystem;usingSystem.Collections.......
  • 【JAVA】sec:authorize标签不生效的坑
    使用springboot+springsecurity+thymeleaf撸一个登录的demo,在处理sec标签的时间打死都出不来效果,网上的解决方法基本都是各种抄,各种降版本的骚操作,根本没有说到关键点。现象......
  • Web入门:JavaScript搜索展开
    欢迎来的我的小院,恭喜你今天又要涨知识了!案例内容利用JavaScript实现搜索框的移动展开。演示学习<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF......
  • 银河麒麟桌面操作系统配置java环境变量
    1、使用apt命令下载jdk8sudoapt-getinstallopenjdk-8-jreopenjdk-8-jdk2、使用命令dpkg或whereis查看安装路径,发现无法找到jdk的安装路径3、这个时候通过dpkg-Lop......
  • InputStream和OutputStream的区别和转换
    InputStream和OutputStream都是流,里面都能存储数据流(字节流或字符流)都代表内存数据,而且都是通过构造方法里传一个参数(比如File对象);它们的区别是:InputStream是将外部数据(......
  • JAVA面试题--Docker
    Docker1.什么Docker2.Docker与虚拟机有何不同3.什么是Docker镜像4.什么是Docker容器5.Docker容器有几种状态6.DockerFile中最常见的指定是什么?7.DockerFile中的命......
  • JAVA面试题--Elasticsearch
    Elasticsearch1.为什么要使用Elasticsearch?2.Elasticsearch是如何实现Master选举的?3.Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个ma......
  • Java方法详解
    何为方法Java方法是语句的集合,他们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计......
  • JAVA面试题--Jenkins
    Jenkins1.什么是Jenkins?2.Maven,Ant和Jenkins有什么区别?3.Jenkins支持哪些SCM工具?4.在Jenkins中,什么是持续集成?5.Jenkins的优势是什么?6.可以使用哪些命令手动启......