有这个:
List<Integer> list = new LinkedList<>();
for (int i = 0; i < upperBound; i += step) {
list.add(i);
}
如何将其替换为功能样式的流?
感谢
答案 0 :(得分:2)
你的循环看起来很好。
如果您绝对想要使用流,则可以创建IntStream
并将其加入List
。例如:
int elementCount = upperBound / step;
if (upperBound % step != 0) elementCount++;
List<Integer> list = IntStream.range(0, elementCount)
.map(i -> i * step)
.boxed()
.collect(toCollection(LinkedList::new));
请注意,定义上限并不简单。
答案 1 :(得分:1)
您可以使用range
中的IntStream
功能:
List<Integer> collect = IntStream.range(startRange, upperBound).filter(x -> (x % step) == 0).boxed().collect(toCollection(LinkedList::new));
您可以在此answer
中找到更多信息