我现在开始使用java8。我想知道如何迭代循环n次并添加到列表中:
List orderDayList = new ArrayList<>();
IntStream.rangeClosed(1, 28).forEach(value -> {
orderDayList.add(value);
});
上面的代码正在运行。这是正确的方法还是有其他方法可以实现?
由于
答案 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);