如何迭代for循环并添加到java 8中的列表?

时间:2016-02-26 05:42:02

标签: java for-loop java-8

我现在开始使用java8。我想知道如何迭代循环n次并添加到列表中:

List orderDayList = new ArrayList<>();
        IntStream.rangeClosed(1, 28).forEach(value -> {
            orderDayList.add(value);
        });

上面的代码正在运行。这是正确的方法还是有其他方法可以实现?

由于

1 个答案:

答案 0 :(得分:5)

逐字就是这样,Collector

List<Integer> orderDayList =
    IntStream.rangeClosed(1, 28)
             .boxed()
             .collect(Collectors.toCollection(ArrayList::new));

如果我们不关心List

的类型,会更短一些
List<Integer> orderDayList =
    IntStream.rangeClosed(1, 28)
             .boxed()
             .collect(Collectors.toList());

请参阅Collectors + tutorial

  

这是正确的方法[...]吗?

好吧,从lambda内部修改外部世界被认为是草率的形式,但这对于这么简单的事情并没有什么不同。

另外,为了让你思考,你的lambda可以写成方法参考:

IntStream.rangeClosed(1, 28)
         .forEach(orderDayList::add);