java - 使用流检查映射中的键并且值不为空
问题描述
我想知道是否使用流,是否可以重构以下代码。
BiFunction<ClassA, ClassB, Boolean> function = (a, b) -> {
Map<String, String> theMap = a.getMap();
String theKey = b.getKey();
String theValue = theMap.get(theKey);
return !StringUtils.isBlank(theValue);
};
因此:
- 首先我们从对象 a 中获取地图
- 然后我们从对象 b 中获取一个密钥
- 我们检查地图中的键是否有值
- 值不为空
类似的东西(不是真正的代码):
BiFunction<ClassA, ClassB, Boolean> function = (a, b) -> {
return a.getMap().entrySet().stream()
.map(Entry::getKey).filter(b.getKey()::equals)
.map(Entry::getValue).filter(!StringUtils::isBlank);
};
解决方案
推荐阅读
- python - 熊猫:添加百分比列
- karate - 空手道-加特林:无法基于标签运行场景
- excel - 在 Excel Addin Nodejs Api 中获取单元格的最终非公式先例
- elasticsearch - 如何按运行时计算的价格(低/高)排序
- angular - 单元测试用例随机失败,Angular 应用程序从 Angular 7 转换为 11
- python - 当使用 conda-build 构建 conda 包并且我的代码使用纯 python 库时,我需要在 meta.yaml 文件中的 build/host/run 中放入什么?
- python - sympy 的 ConditionSet 对象不可迭代
- python - 每次我从一个环境跳转到另一个环境时,VS Code 都会启动 python 进程,每个人都会消耗大约 100% 的 CPU
- javascript - 如何在JS中构造多个包之间的导出和导入
- android - 在此代码中,上下文不需要工作:找到上下文:上下文?