函数式编程入门( 二 )


@Testpublic void mapReduceTest() {List cost = Arrays.asList(10.0, 20.0,30.0);double allCost = cost.stream().map(x ‐> x+x*0.05).reduce((sum,x)‐> sum + x).get();System.out.println(allCost);}最终的结果为:
63.0如果我们用for循环来做这件事情:
@Testpublic void sumTest() {List cost = Arrays.asList(10.0, 20.0,30.0); double sum = 0;for(double each:cost) { each += each * 0.05; sum += each;}System.out.println(sum);}相信用map+reduce+lambda表达式的写法高出不止一个level 。
2.2.5 filter操作
filter也是我们经常使用的一个操作 。 在操作集合的时候 , 经常需要从原始的集合中过滤 掉一部分元素 。
@Testpublic void filterTest() List cost = Arrays.asList(10.0, 20.0,30.0,40.0); List filteredCost = cost.stream().filter(x ‐> x >25.0).collect(Collectors.toList());filteredCost.forEach(x ‐> System.out.println(x));}最后的结果:
【函数式编程入门】30.040.0