java - 如何在 concurrentHashMap 中突破 foreach

标签 java java.util.concurrent

我在另一个 map 中有一个 map 。我必须根据条件进行优化以优化我的代码。但是编译器会提示它。有没有其他方法可以得到我想要的东西

AtomicBoolean flag1 = new AtomicBoolean(true);
AtomicBoolean flag2 = new AtomicBoolean(true);

AtomicInteger count = new AtomicInteger(0);

s.getMap.forEach((k,v)->{
    v.forEach((k1,v1)-> {
        if(v1) flag2.set(false);
        else flag1.set(false);

        if (count.incrementAndGet() > 1 && ((!flag1.get()) || (!flag2.get()))) {
            break;
        }

});

最佳答案

您不能使用 forEach 方法中断迭代。如果您希望能够退出循环,您必须在映射的条目集上使用传统的 for-each 循环。

关于java - 如何在 concurrentHashMap 中突破 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465538/

相关文章:

java - 在 J2ME 中将缓冲区旋转到播放器的替代方法?

Java swing - 可滚动 GridLayout 中的项目不可见

java - 引入ExecutorService后TextView setText不起作用

java - Java 中的目录扫描器

java - Java volatile字段跨线程读写协调理解

java - Maven 项目无法识别某些 Artifact

java - 如何在不知道父节点的情况下读取值 Firebase

java - 挂起 Web 请求(线程)

java - Java 中的 ConcurrentHashMap 锁定机制用于 computeIfPresent

java - ConcurrentHashMap中的并发修改