我想用lambda转换成循环。
我只是想得到错误的结果,请帮助转换为lambda表达式,谢谢。
The Map structure looks like this content looks like `{"success":"false","msg":"I got error"}`
List<Future<Map<String, Object>>> tfFuture = lists.stream().map(i -> service.submit(new what(i))).collect(Collectors.toList());
for(int i=0;i<tfFuture.size();i++){
if(tfFuture.get(i).get().get("success").equals(Boolean.FALSE)){
break;
}
return tfFuture.get(i).get();
}
我只想得到错误结果
{"success":"false","msg":"I got error"}
答案 0 :(得分:1)
您可以使用filter()
和findFirst()
,而无需将它们都收集到List中:
return
lists
.stream()
.map(i -> service.submit(new what(i)))
.map(Future::get)
.filter(m -> m.get("success").equals(Boolean.FALSE))
.findFirst().mapping(m-> m.get("success") + ":" + m.get("msg"))
.orElse(null);
如果没有匹配项,则在此处返回null作为默认值。