Scala的几种高阶函数

 Scala中是函数式编程和Java面向接口编程有很大不同,这些函数在使用方式上并不太难。高阶函数,也就是能够接收另外一个函数作为参数的函数。

假如现在有一个需要是将List集合中的每个元素变为原来的两倍,现在来对比Java方式实现和Scala方式实现区别

Java方式实现,先将集合中的每个元素遍历出来,然后再乘以2,塞到另外一个集合中

ArrayList<Integer> list1 = new ArrayList<Integer>(3, 5, 7);
ArrayList<Integer> list2 = new ArrayList<Integer>();
for (Integer elem : list1) {
list2.add(elem *2 );
}
System.out.println(list2);

Scala方式实现

val list1 = List(3, 5, 7)
val list2 = list1.map(f1) //map高阶函数,能够接收另外一个函数
def f1(n1: Int): Int = {
   2 * n1
}
println(list2)

可以发现相对于Java的实现方式,Scala中更偏向于使用高阶函数来解决问题,并且也简化了很多。

或许你会有些许疑问,这是什么鬼,这没有简化到哪里呀!的确,但是这里只是小小的演示。  

Scala中常用的高阶函数有如下几种

1.映射函数(map)

map函数

 小注:在Scala中的泛型是表示方法是“[]”,java中的泛型表示方式是“<>”。map函数存在于所有集合类型中,包括在String中。

2.扁平化(flatMap)

3.过滤(filter)

4.化简(reduceLeft、reduceRight、reduce)

5.折叠(folderLeft、folderRight、folder)

常见使用方法,统计字母出现次数、统计单词出现次数

6.扫描(scanLeft、scanRight)

猜你喜欢

转载自www.cnblogs.com/cosmos-wong/p/11436497.html
今日推荐