2016-02-17 35 views
2

我在另一个Map中有一个Map。我不得不根据条件来优化我的代码。但编译器抱怨它。是否有另一种方式得到我想要如何在并发HashMap中分解foreach

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; 
     } 

}); 
+0

你想要做什么?你的代码看起来好像还有另一种更好的方式来处理它。 – Tunaki

+0

我使用外部地图的上下文来存储对象在内部映射中向上或向下的状态; s键。我想知道是否所有人都倒闭或全部倒闭。或者部分(多于一个)。在部分情况下,我不想进一步循环,想要突围,那就是我的条件使用if循环打破 – Paul

+0

为什么不使用for循环? – Tunaki

回答

1

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