【发布时间】:2016-01-15 05:35:01
【问题描述】:
如果某些条件匹配,有人可以告诉我如何退出 forEach 循环。我正在使用并行流。
下面是我的代码。
Map<int[], String[]> indexAndColNamePairs = depMapEntry.getKey();
Set<List<String>> dataRecords = depMapEntry.getValue();
for(Map.Entry<int[], String[]> indexAndColNamePair: indexAndColNamePairs.entrySet())
{
int refColIndex = indexAndColNamePair.getKey()[0];
Stream<List<String>> dataRecs = dataRecords.parallelStream();
dataRecs.forEach((row) -> {
if(referencingValue.equals(row.get(refColIndex)))
{
requiredColValueAndName.put(row.get(indexAndColNamePair.getKey()[1]),
indexAndColNamePair.getValue()[1]);
}
});
if(referencingValue.equals(row.get(refColIndex))) 然后我将值插入到映射中,然后我需要退出。
【问题讨论】:
-
在 if 块末尾添加
break;命令应该可以解决问题。 -
我不想从 for 循环中中断,我想从 forEach 中中断。另外,在 if 块中不能使用 break 或 continue。
-
for each 仍然是一个 for 循环,只是它的不同实现。休息应该仍然有效
-
我试过了,但它说 break 不能在循环或开关之外使用
-
@CalvinP。 OP 要求在流中使用 java 8 forEach,而不是 java 5 中引入的“for-each”循环。
标签: java foreach java-stream