欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

scala入门-09 scala高阶函数

程序员文章站 2022-07-02 18:33:41
...

我们做spark开发 会使用很多spark的高阶函数 所以 今天我就在linux服务上使用scala高阶函数

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

声明一个List集合:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

List集合所在的包已经被预定义自动引入,所以此处就不需要在引入包了,这里直接使用List实例化对象,其实用List的object对象的apply方法

我们使用map函数把list中的每个值都乘以3:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

x表示l中每一个元素,map对l中的每一个元素进行遍历操作,由于List中只有一种类型的元素,所以我们在执行马屁操作的时候可以省略其类型,如下所示:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

List集合中只有一个参数的时候,我们可以去掉参数中的括号:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

为了能保存所有代码,我还是使用IDEA吧

scala中的集合:

集合主要有List、Set、Tuple、Map等

在scala下的org.scala.collection下创建scala类CollectionOperations

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

在IDEA中创建一个List实例:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

我们看一下List代码实现:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

源码中说明了其内部是apply的方式来完成实例化的:

使用同样的方式实例化Set:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

我们可也看下Set实例化对象的实现:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

接下来我们在linux命令行终端中砍下集合的操作,首先看Set:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

发现Set中不会存储重复的元素

下面看下Tuple的申明和使用:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

tuple 访问的时候下标是从1开始的

对于Tuple而言,如果只有两个元素的时候我们还可以使用如下方式创建:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

接下来我们看下Map的定义吧:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

Map本身使用的是可变参数的方式,所以可以给Map赋多个值:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

我们看一下Option类型,Option代表了一个可有可无的值:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

Option有两个子类:Some 和None,下面看看Option的使用:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

接下来我们看下filter的使用:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

对集合的zip操作:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

下面我们看下partition对集合的切割操作:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

使用flatten的多集合进行扁平化操作:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map 

flatMap是map和flatten操作的集合,先进行map操作后再进行flatten操作:

scala入门-09 scala高阶函数
            
    
    博客分类: scala scala对象filter遍历map