java - 我可以在 List 的流中链接空检查吗
问题描述
Java新手。我正在尝试通过使用流在列表中查找值 - 但我需要在提取值之前检查列表是否为空,并且我正在寻找如何在流中链接它。这是我当前的代码:
for (Record currRec : records) {
notedRec = masterRecs.stream().filter(rec -> rec.getId().equals(currRec.getId()))
.collect(Collectors.toList()).get(0);
}
如果.collect()返回 null,则此代码将失败,因为我正在尝试.get(0)可能为 null 的列表。我现在正在尝试这种方法,但它看起来很旧并且正在寻找更优雅的东西:
for (Record currRec : records) {
recList = masterRecs.stream().filter(rec -> rec.getId().equals(currRec.getId()))
.collect(Collectors.toList());
if(recList.size() > 0) {
notedRec = recList.get(0);
}else {
// throw warning that record wasn't found in List
}
}
对我来说,似乎我可以在.collect()之后链接空检查,但我找不到任何关于如何做到这一点的信息。感谢您提供任何有用的提示。
解决方案
您正在寻找findFirst
和orElseThrow
masterRecs.stream().filter(rec -> rec.getId().equals(currRec.getId()))
.findFirst().orElseThrow(//some exception);
推荐阅读
- python - Python - 没有名为错误的模块。无论我将 __init__.py 文件放在哪里,摄取器文件似乎都无法访问它
- node.js - (插件汇总核心)错误:无法加载/Users/Naseem/AppData/Roaming/npm/node_modules/wpe-lightning-cli/src/alias/wpe-lightning.js
- firebase - 您的 Cloud Firestore 数据库具有不安全的规则。什么规则最适合简单的应用程序?
- python - 保存为 VTK 旧格式 3.0
- python-3.x - 如何在不循环的情况下获取statsmodels中多个单变量OLS的变量t-stat?
- c# - 使用 asp.net core 2.2 创建类别和子类别依赖列表框
- java - 一个定时器对象,TextView 中的所有定时器都被更新
- python - 如何使用 sparql 查询仅获取值“Tuýp_2”并删除 URIRef 链接“http://www.semanticweb.org/ngocv/ontologies/2020/5/hotrobenhtieuduong#Tuýp_2”
- c# - 使用反射从覆盖中获取价值
- php - PHP:拆分需要的字符串