如何使用流将顺序元素添加到List

时间:2017-10-12 09:12:11

标签: java list java-stream

有这个:

    List<Integer> list = new LinkedList<>();

    for (int i = 0; i < upperBound; i += step) {
        list.add(i);
    }

如何将其替换为功能样式的流?

感谢

2 个答案:

答案 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

中找到更多信息