今天来看一下关于List的一阶函数操作

让我们看下下面的代码

println(List(1,2,3,4):::List(4,5,6,7,8):::List(10,11))//列表连接
    println(List(1,2,3,4)::List(4,5,6,7,8)::List(10,11))//两个冒号连接也行
    println(List(1,2,3,4).length)//速度较慢,isEmpty用来衡量是否为0
   
    val bigData = List("Hadoop","Spark","Kaffka")
    println(bigData.last)//最后一个元素
    println(bigData.init)//除去最后一个元素后形成的集合
    println(bigData.reverse)//元素反转
    println(bigData.take(2))//取前两个元素
    println(bigData.drop(2))//把前面的n个元素去除后剩下元素的集合
    println(bigData.splitAt(2))//分割成两个列表,前n个为一个列表,剩下的为一个列表
    println(bigData.apply(2))//访问具体元素,索引位置为n
    println(bigData(2))//下标为2的元素,内部会调apply
   
    val data = List('a','b','c','d','e','f')
    println(data.indices)//取出所有元素的索引
    println(data.indices zip data)//两个列表结合成元组
    println(data.zipWithIndex)//与index结合
    println(data.toString())//打印列表
    println(data.mkString)//打印元素
    println(data.mkString("[", ",", "]"))//将列表按格式进行输出
    println(data.mkString(" "))//元素的分隔格式,输出

println("***************************")
   
   
    val buffer = new StringBuilder//StringBuilder,缓存数组
    data.addString(buffer, "(", "::", ")")//将操作后的结果存入buffer,后面为分隔方法
    println(buffer)
   
   
    val array = data.toArray//转换成数组
    println(array.toList)//转换成列表
   
    val new_Array = new Array[Char](10)
    data.copyToArray(new_Array, 3)//将列表拷贝进数组,大小必须能放下所有元素。3为跳过前三个元素后,再将列表拷贝进来,即,前三个元素是空的
    new_Array.foreach(print)
    println
   
   
    val iterator = data.toIterator//转换成迭代器
    println(iterator.next)
    println(iterator.next)

关于每一个操作的后面,我都给出了相应的注意,但我们再来统一看一遍。

:::列表连接符,它能将几个列表连接成一个新的列表。(也可以用::)

length方法,计算列表长度,但是效率较慢。如果想判断列表是否为空,可用isEmpty。

last方法,取出列表最后一个元素;init方法,取出除最后一个元素外其它元素构成的列表;reverse方法,使列表元素顺序反转;take方法,取出列表的前n个元素;drop方法,去除列表的前n个元素;splitAt方法,分隔成两个列表,前n个元素构成一个列表,剩下的元素构成另外一个列表;apply,取出索引为n的元素,可省略apply。

indices方法,取出元素的索引;zip方法,组成两个列表成一个元组;zipWithIndex方法,使元素与索引结合成一个新的列表。toString,使列表可打印;mkString方法,只输出元素;mkString("[", ",", "]")方法,按格式输出元素;mkString(" ")方法,按制定分隔符分隔元素。

StringBuilder,缓存数组;addString,按格式将元素添加到缓存数组中;toList,toArray方法,列表和数组可相与转换;copyToArray方法,将列表元素拷贝到数组中;toIterator方法,将列表转换成迭代器。

分享下更多的scala资源吧:

百度云盘:http://pan.baidu.com/s/1gd7133t

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

关注微信账号,获取更多关于scala学习内容

第33讲:List的一阶函数操作代码实战详解的更多相关文章

  1. Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  2. Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  3. Scala 深入浅出实战经典 第52讲:Scala中路径依赖代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  4. 第52讲:Scala中路径依赖代码实战详解

    今天学习了scala中的路径依赖,来看一下实战代码 class Outer{  private val x = 10  class Inner{    private val y = x +10  } ...

  5. 王家林系列之scala--第69讲:Scala并发编程react、loop代码实战详解

    刚才看了一下,群里王家林老师又更新课程了,真为王老师的勤奋感到佩服,于是迫不及待的下载下来观看学习.本期讲的是关于scala并发编程的react.loop代码实战. 信息来源于 DT大数据梦工厂微信公 ...

  6. 第71讲:Scala界面Panel、Layout实战详解

    今天学习了王家林老师scala讲座的第71讲,scala界面编程panel实战.让我们一起来看一下. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于王家林老师的 ...

  7. Scala 深入浅出实战经典 第39讲:ListBuffer、ArrayBuffer、Queue、Stack操作代码实战

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  8. python操作redis用法详解

    python操作redis用法详解 转载地址 1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用 ...

  9. Scala深入浅出实战经典之 List的foldLeft、foldRight、sort操作代码实战

     Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 3 ...

随机推荐

  1. JS宝典

    hammerjs 终止事件流 window.event.returnValue = false; return false; 页面显示调用方法.类似viewWillApper IOS和android表 ...

  2. 【T电商2】ftp服务器搭建

    一.为什么需要ftp? 分布式环境一般都有一个专门的图片服务器存放图片.我们使用虚拟机搭建一个专门的服务器来存放图片.在此服务器上安装一个nginx来提供http服务,安装一个ftp服务器来提供图片上 ...

  3. Http的请求对象

    Servlet 客户端 HTTP 请求 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的.您可以查看 HTTP ...

  4. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  5. 44. 普通对象建一个用户方法,提交时报:失败:建立业务逻辑对象失败:业务逻辑定义更新到数据库失败:ORA-00904: "DEFVERSION": 标识符无效

    LBBIZPROCESSDEFSLBHISTORYBIZPROCESSDEFSLBHISTORYMULTIWFDEFSDESIGNLBHISTORYWORKFLOWDEFSDESIGNLBMULTIW ...

  6. mongodb账号安全操作

    安装服务 mongod --install --serviceName mongodb --storageEngine=mmapv1 --dbpath i:\mongodb\data --journa ...

  7. DIRECTORY_SEPARATOR 和 PATH_SEPARATOR的区别

    DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’    windows上是’\’ PATH_SEPARATOR:路径分隔符,include多个路径使用,在win下,当你要in ...

  8. avalon2学习教程13组件使用

    avalon2最引以为豪的东西是,终于有一套强大的类Web Component的组件系统.这个组件系统媲美于React的JSX,并且能更好地控制子组件的传参. avalon自诞生以来,就一直探索如何优 ...

  9. ghost系统到硬盘完后,重启进入winxp安装的画面变成了蓝屏

    ghost系统到硬盘完后,重启进入winxp安装的画面变成了蓝屏 原因分析: 一.系统集成的驱动和主板不兼容  这种原因引起的故障在部份品牌机上较常见,主要症状是系统能正常安装完成,但完成后重启进入系 ...

  10. 查看某个线程占得CPU高

    jps得到pid pidstat -p [pid] -t 1 5        -t表示显示该进程里面所有的线程的信息 06:20:32 PM      TGID       TID    %usr ...