任何人都可以帮助转换为lambda表达式吗?

时间:2018-12-21 08:34:07

标签: java lambda

我想用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"}

1 个答案:

答案 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作为默认值。