Mic*_*ael 5 java functional-programming java-8
编写以下内容是否有更简洁,也许是单行方式:
ArrayList<Integer> myList = new ArrayList<>();
for (int i = 0; i < 100; i++){
myList.add(i);
}
Run Code Online (Sandbox Code Playgroud)
使用Java 8功能和功能上的insipred方法.我不期待像以下那样的Haskell解决方案:
ls = [1..100]
Run Code Online (Sandbox Code Playgroud)
但比传统的命令式风格更优雅.
一个解决方案是
List<Integer> list = IntStream.range(0, 100).boxed().collect(Collectors.toCollection(ArrayList::new));
Run Code Online (Sandbox Code Playgroud)
步骤:
IntStream.range(0, 100)是一个由100个原始ints组成的流.boxed()把它变成一个Integer物体流.这是将数字放入的必要条件Collection.collect(Collectors.toCollection(ArrayList::new));是你如何将a转换Stream为ArrayList.您可以ArrayList::new由任何供应商替换集合,并且元素将添加到该集合中.| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |