java - 如何从java流中只返回一个字符串
问题描述
我了解如何收集到 a List
,但不知道如何将过滤对象的一个参数返回为 a String
。
fee = new BigDecimal(fees
.stream()
.filter(p -> p.getTodate().isAfter(LocalDateTime.now()))
.filter(p -> p.getFromdate().isBefore(LocalDateTime.now()))
.filter(p -> p.getId().equals(id))
return fee;
我首先检查费用是否是最新的,因为可能会有即将发生的费用和不再有效的费用。然后我将 id 与剩余费用相匹配。但是最后一个过滤器和返回之间缺少代码。
我只想String
从构造函数的Stream
对象(p.getFee)返回BigDecimal
。
我知道过滤器后只剩下一个Stream
对象。
解决方案
用于findFirst
返回Stream
通过过滤器的第一个元素。它返回一个Optional
,因此您可以使用它orElse()
来设置默认值,以防Stream
为空。
fee = new BigDecimal(fees
.stream()
.filter(p -> p.getTodate().isAfter(LocalDateTime.now()))
.filter(p -> p.getFromdate().isBefore(LocalDateTime.now()))
.filter(p -> p.getId().equals(id))
.map(p -> p.getFee())
.findFirst()
.orElse(/*some default value*/));
推荐阅读
- makefile - 在 Makefile 的 foreach 循环中使用两个参数评估函数
- r - 如何对函数进行灵敏度测试?
- java - 一个基本的 android 应用程序以什么顺序执行它的文件?
- ansible - 在分布式环境中使用 ansible 进行 WSO2 分析
- typescript - Firebase 函数错误 - 对象可能是“未定义”
- php - PHP SplPriorityQueue 中的 Rewind 方法不会将迭代器移动到队列的开头
- oozie - 在未来日期运行 Oozie Action
- c++ - 用C画好圆
- amazon-web-services - 从 Telegram 电子书调用时,哪种 AWS 服务更适合托管 GO 程序?
- reactjs - 我如何使用减速器返回的值