咱们作spark开发 会使用不少spark的高阶函数 因此 今天我就在linux服务上使用scala高阶函数linux
声明一个List集合:web
List集合所在的包已经被预约义自动引入,因此此处就不须要在引入包了,这里直接使用List实例化对象,其实用List的object对象的apply方法app
咱们使用map函数把list中的每一个值都乘以3:函数
x表示l中每个元素,map对l中的每个元素进行遍历操做,因为List中只有一种类型的元素,因此咱们在执行马屁操做的时候能够省略其类型,以下所示:spa
List集合中只有一个参数的时候,咱们能够去掉参数中的括号:命令行
为了能保存全部代码,我仍是使用IDEA吧scala
scala中的集合:orm
集合主要有List、Set、Tuple、Map等对象
在scala下的org.scala.collection下建立scala类CollectionOperationsip
在IDEA中建立一个List实例:
咱们看一下List代码实现:
源码中说明了其内部是apply的方式来完成实例化的:
使用一样的方式实例化Set:
咱们可也看下Set实例化对象的实现:
接下来咱们在linux命令行终端中砍下集合的操做,首先看Set:
发现Set中不会存储重复的元素
下面看下Tuple的申明和使用:
tuple 访问的时候下标是从1开始的
对于Tuple而言,若是只有两个元素的时候咱们还可使用以下方式建立:
接下来咱们看下Map的定义吧:
Map自己使用的是可变参数的方式,因此能够给Map赋多个值:
咱们看一下Option类型,Option表明了一个无关紧要的值:
Option有两个子类:Some 和None,下面看看Option的使用:
接下来咱们看下filter的使用:
对集合的zip操做:
下面咱们看下partition对集合的切割操做:
使用flatten的多集合进行扁平化操做:
flatMap是map和flatten操做的集合,先进行map操做后再进行flatten操做: