【发布时间】:2017-04-18 19:38:10
【问题描述】:
如何在 IntStream 或列表流中添加增量值?
List<TestInstance> testInstances = IntStream.range(0, rankedItem.size())
.mapToObj(i -> TestInstance.fromItem(rankedItem.get(i), filteredItems.containsKey(rankedItem.get(i).getItem().getId())))
.collect(Collectors.toList());
int rank = MIN_RANK_VALUE;
for (TestInstance testInstance : testInstances) {
testInstance.getRank().put(rankerName, rank++);
}
现在我在 2 个 for 循环中执行此操作。有什么办法可以在一次迭代中完成吗?
【问题讨论】:
-
您可以使用
AtomicInteger及其getAndIncrement方法。您没有使用它的原子性(除非您使用并行流),但它的其他优点使它适合您的目的。
标签: java list for-loop java-8 java-stream