首页 > 编程语言 >java调用filter,map方法

java调用filter,map方法

时间:2023-07-04 19:45:14浏览次数:49  
标签:map java stream list findFirst filter null id

java的集合类,没有直接实现filter,map这些函数式方法,要调用这些方法,可以使用 Java8 的 Stream API

详细使用可参考: Java8中Stream详细用法大全 

Java8 的 Stream API 的坑

1. 没有直接的 findObj 方法

findFirst 和 findAny 都不支持传入条件

要从list中查找一个对象,只能通过filter得到一个list,再通过 findFirst 获取,最后再通过 get 才能拿到原始类型的对象

User u = list.stream().filter(t -> t.getId() == id).findFirst().get()

而且 findFirst 还有坑,返回的 Optional<T> 类型为 null 时候,不能get,要判断一下

解决方法有如下几种:

//使用orElse(null)
User u = list.stream().filter(t -> t.getId() == id).findFirst().orElse(null)

//使用 isPresent 判断
Optional<User> u = list.stream().filter(t -> t.getId() == id).findFirst().orElse(null)
return u.isPresent() ? u.get() : null;

//使用 ifPresent(e -> xxx)
list.stream().filter(t -> t.getId() == id).findFirst().orElse(null).ifPresent(e -> System.out.println(e))

 

标签:map,java,stream,list,findFirst,filter,null,id
From: https://www.cnblogs.com/mengff/p/17526806.html

相关文章

  • Java编程里的控制语句
    控制语句:把语句组合成能完成一定功能的小逻辑模块。它分为三类:顺序、选择和循环。1.“顺序结构”代表“先执行a,再执行b”的逻辑。2.“条件判断结构”代表“如果…,则…”的逻辑。3.“循环结构”代表“如果…,则重复执行…”的逻辑。条件判断结构(选择结构)条件判断结构有:if结构......
  • PAT乙级【Java题解合集】
    ✨说在前面       这个暑假博主用大概两周不到的闲暇时间把PAT乙级的110道算法题全部肝完了,个人感觉题目的难度大部分在中等偏下,大概有二十道左右的题目还是蛮有意思的,值得细细去钻研,本专栏非常适合新手入门算法,也适合Java算法老手巩固一些基本知识点,由于C站上关于PAT乙级J......
  • 简单了解java
    Java各版本的含义JavaSE(JavaStandardEdition):标准版,定位在个人计算机上的应用JavaEE(JavaEnterpriseEdition):企业版,定位在服务器端的应用JavaME(JavaMicroEdition):微型版,定位在消费性电子产品的应用上Java的特性和优势1.跨平台/可移植性:这是Java的核心优势。2.安全性3.面......
  • 常用的前端JavaScript方法封装
     1、输入一个值,返回其数据类型**functiontype(para){returnObject.prototype.toString.call(para)} 2、数组去重functionunique1(arr){return[...newSet(arr)]}functionunique2(arr){varobj={};returnarr.filter(ele=>{if......
  • 【10.0】前端基础之JavaScript进阶
    【10.0】前端基础之JavaScript进阶【一】自定义对象可以看成Python中的字典,但是在JS中的自定义对象要比Python里面的字典操作起来更方便【1】创建自定义对象方式一vard={"键":"值",};操作方法vardict={"name":"dream","age":18};vardict={"name":"dream&......
  • java http大文件断点续传上传示例
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基......
  • java开发环境的搭建
    卸载JDK1、删除java的安装目录2、删除JAVA_HOME3、删除path下关于java的目录4、打开命令提示符,输入java-version检查jdk是否卸载成功 安装JDK1、百度搜索jdk8,找到下载地址2、下载电脑对应的版本3、双击安装JDK4、记住安装的路径5、配置环境变量:1)我的电脑→右键......
  • JavaScript 数组的 reduce 方法有哪些应用
    JavaScript数组的reduce方法有哪些应用JavaScript中的reduce()方法可以用于将数组元素汇总为单个值,它接受一个回调函数作为参数,并在每个数组元素上调用该函数,以便将其累加到一个累加器变量中。下面是一些实际应用:数组求和:使用reduce()方法将数组元素相加,从而计算数组的总......
  • ArcMap镶嵌数据集的创建、数据导入与数据范围修改方法
      本文介绍基于ArcMap软件,建立镶嵌数据集(MosaicDatasets)、导入栅格图像数据,并调整像元数值范围的方法。  镶嵌数据集(MosaicDatasets)是一种用以管理、显示、共享大量栅格数据的手段,在GIS领域具有较多的应用场景。本文就在常见的ArcMap软件中,进行镶嵌数据集的新建,在其中导入......
  • 【8.0】前端基础之JavaScript引入
    【8.0】前端基础之JavaScript引入【一】什么是JavaScriptjs也是一门编程语言,他可以写后端代码JavaScript想一统天下,前后端都写于是node.js支持JS代码跑在后端服务器上但是并不能完美的实现JavaScript和Java一毛钱关系都没有,纯粹是为了蹭Java的热度【二】JavaScrip......