java - Java Stream,如何检查 Map 值的长度
问题描述
我有一个从 Map 检索值的流表达式
String name = map.entrySet().stream()
.filter(map -> "fName".equalsIgnoreCase(map.getKey()))
.map(map -> map.getValue())
.collect(Collectors.joining());
我想知道如何添加检查以查看地图值是否为空白或其中有一些值。
因此,如果 map-value forfName
是空白抛出异常,则将 value 放入变量中name
。
我该怎么做呢?
解决方案
重写 lambda{}
使其可以包含语句,例如抛出异常。
String name = map.stream()
.filter(entry -> "fName".equalsIgnoreCase(entry.getKey()))
.map(entry -> {
String v = entry.getValue();
if(v == null || v.isEmpty()) {
throw new IllegalStateException("null or empty value: " + entry.getKey());
}
return v;
})
.collect(Collectors.joining());
推荐阅读
- python - 从 PySpark Dataframe 中查找最高评分
- string - 用于字符串集的 UITextChecker - Swift 4.2
- web - NGINX 页面重定向到主页
- css - 如何在css中创建中间有曲线的线
- callback - 在带有回调的 GUI scilab 中显示结果
- r - 需要创建日期间隔序列
- javascript - 如何使用 Puppeteer 等待事件触发的页面重新加载?
- javascript - 以下程序是否在外循环的第一次迭代中执行嵌套循环?
- c# - C# 控制台项目 - NUnit 检查验证消息
- c# - 我可以动态创建一个表达式
> 谓词,但我如何创建表达式 >