java - 如何转换流
问题描述
在这里,我发布示例数据结构
我有一个清单List<Result> resultsList;
class Result {
String name;
Map<String,Integer> resultMap;
}
现在我想浏览这个列表并获取地图。
resultList.stream().filter(result->"xxx".equals(result.getName()))
.map(result->result.getResultMap);
它返回Stream<Map<String,Integer>>
,但我只需要Map<String,Integer>
.
如何使用 java 8 流获取它?
更新:
正如geneqew提到的
这就是我的数据结构的样子
List<Result> resultsList;
Map<String, Integer> map1 = new HashMap<>();
map1.put("m1", 1);
Map<String, Integer> map2 = new HashMap<>();
map2.put("m2", 2);
Map<String, Integer> map3 = new HashMap<>();
map3.put("m3", 3);
results = Arrays.asList(
new Result("r1", map1),
new Result("r2", map2),
new Result("r3", map3)
);
我想检索基于name
.
for (Result result: resultsList)
{
if ('xxx'.equals(result.getName())
{
return result.getResultMap();
}
}
解决方案
由于您想返回第一个Result
元素的结果映射以通过您的过滤器,您可以通过以下方式获取它findFirst()
:
Optional<Map<String,Integer>> resultMap =
resultList.stream()
.filter(result->"xxx".equals(result.getName()))
.map(Result::getResultMap)
.findFirst();
您可以Map
通过Optional
以下方式提取:
Map<String,Integer> resultMap =
resultList.stream()
.filter(result->"xxx".equals(result.getName()))
.map(Result::getResultMap)
.findFirst()
.orElse(null);
推荐阅读
- python-3.x - 我怎样才能将这些 ndarray 之一重塑为这些形式中的任何一种?如果可能,请提供示例代码
- c# - 如何使用 JSONUtility 读取键中带有连字符的对象?
- ios - 使用调度组时如何使公共资源线程安全?
- amazon-web-services - 尝试使用 Github、Docker、ECR 和 EC2 在 AWS 上设置 CI/CD
- javascript - 开发者如何提供没有文件的网站图片(包括背景)?
- reactjs - 在反应中显示日期的一部分
- ios - 即使在从钥匙串访问和 App Store Connect 中删除后,重新启动 Xcode 时,已删除的 iOS 证书仍会继续显示在钥匙串中
- javascript - Javascript 数组格式化
- sql - SQLite3 UPDATE 错误子选择返回 2 列 - 预期 1
- c# - 类继承不打印任何东西