Java 8:迭代一些Map元素 [英] Java 8: iterating across some Map elements

查看:345
本文介绍了Java 8:迭代一些Map元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用验证方法返回布尔值

我正在调用此方法(Java 7),如下所示:

I'm invoking this method (Java 7) as follow:

    boolean isValid = true;
    for (String key: aMap.keySet()) {
        isValid &= validate(key, aMap.get(key));
        if(!isValid) {
            break;
        }
    }

我想在Java 8中重写这段代码。

I would like to rewrite this code in Java 8.

Java 8允许使用以下内容迭代Map:

Java 8 allows iterating across a Map using:

aMap.forEach((k,v) -> validate(k, v));

但这不起作用:

aMap.forEach((k,v) -> isValid &= validate(k, v)); 

问题

如何将Java 7代码重写为Java 8以获得相同的结果?

How can I rewrite the the Java 7 code into Java 8 to achieve the same result?

注意

提出类似问题 here (但这次,迭代继续通过所有 Map 元素)

Raised a similar question here (but this time, for the iteration to continue through all the Map elements)

推荐答案

boolean isValid = aMap.keySet()
                .stream()
                .allMatch(key -> validate(key, paramRow.getRowMap().get(colName))

作为旁注,是什么? paramRow.getRowMap()。get(colName) do?你在哪里得到 colName ?可能你不必重新计算这个每一个键

As a side note, what does paramRow.getRowMap().get(colName) do? And where do you get colName? May be you don't have to recompute this for every single key

这篇关于Java 8:迭代一些Map元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆