如何在循环中增加Java8Lambda表达式中的“数字”?
我有以下问题。我有一个整数位置,它从1开始,每次在xml中的特定位置发现txt中的特定人员时,它都会递增。如果我对foreach for (PersonMatchInfo pmi : personMatchInfo)
使用经典迭代,它可以工作,但是我的上级让我对java8 foreach
进行迭代,这种类型的迭代只对最终变量有效。如何在新的Java8循环中增加整数?多谢各位
int position = 1;
personMatchInfo.forEach(pmi ->{
if (!stopwatch1.isStarted()) {
stopwatch1.start();
} else if (stopwatch1.isStarted()) {
}
if (pmi.getPersonName().equals(e.getValue())) {
positionMap.put(position, positionMap.get(position) + 1);
break;
} else {
position++;
}
});
# 1 楼答案
可以对其使用
AtomicInteger
和incrementAndGet
方法另一种解决办法是
int[] position = new int[]{1};
和递增
position[0]++;
# 2 楼答案
我想你们前辈要求你们使用流进行收集。 然后使用集合。流动滤器根据您的逻辑进行计数,这将产生一个与值相同的长值并使用它
# 3 楼答案
我知道已经很晚了,所以我会把它放在这里供未来的搜索者使用 以下是如何以一种非常简单的方式完成此任务:
使用集合的
indexOf(Object O)
属性# 4 楼答案
您可以使用静态变量: