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