将带有逗号的字符串数字“1,2,3,4”转为一个整数型的List集合,Java8在函数式实现上弱于C和Javascript。
Java8函数式实现:
Stream.of(s.split(",")).map(Integer::parseInt).collect(Collectors.toList())
<p class="indent">
|
C的函数式实现:
s.Split(",").Select(int.Parse).ToList()
<p class="indent">
|
C#的魔术LINQ和拓展方法消除了将数组转为Stream在语法上臃肿,ToList()要简洁于collect(Collectors.toList());
Javascript函数式实现更好,最新ES6支持:
s.split(",").map(Number)
<p class="indent">
|
Python实现:
<p class="indent">[int(x) for x in s.split(',')]
或
map(int, s.split(','))
<p class="indent">
|
对比下来看,Java 8在stream上的操作比较弱一些了。
Bill Schneider - where I write about software engi