是否有更简洁,也许是一种简单的方式来编写以下内容:
ArrayList<Integer> myList = new ArrayList<>();
for (int i = 0; i < 100; i++){
myList.add(i);
}
使用Java 8功能和功能上的insipred方法。我不期待像Haskell这样的解决方案:
ls = [1..100]
但是比传统的命令式风格更优雅。
答案 0 :(得分:6)
一个解决方案是
List<Integer> list = IntStream.range(0, 100).boxed().collect(Collectors.toCollection(ArrayList::new));
步骤:
IntStream.range(0, 100)
是100个原始int
s。boxed()
将此转换为Integer
个对象的流。这是将数字放入Collection
。collect(Collectors.toCollection(ArrayList::new));
是您将Stream
转换为ArrayList
的方式。您可以将任何供应商的ArrayList::new
替换为集合,并将元素添加到该集合中。