今天来看一下关于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. virtualenv创建虚拟环境安装flask

    virtualenv 有什么用?如果你象我一样热爱 Python ,那么除了基于 Flask 的项目外 还会有其他项目用到 Python .当项目越来越多时就会面对使用不同版本的 Python 的 问 ...

  2. js进度条实现

    1.先设置CSS样式(可自定义) /*#region 进度条 */ .progbar { background-color: #e1e1e1; width:auto; color: #222; hei ...

  3. teamviewer 过期解决办法

    参考资料: http://blog.csdn.net/z249683156/article/details/41842271

  4. 【转载】大数据量传输时配置WCF的注意事项

    WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定 ...

  5. Office 开发版本号与版本对应关系

    Office 开发版本号与版本对应关系: office97 : 8.0 office2000 : 9.0 officeXP(2002) : 10.0 office2003 : 11.0 office2 ...

  6. MySQL_关于用嵌套表计算的可以不用 20161205

    计算求和类的指标,其实用不到嵌套表,比如计算各城市产品分类的订单额. 如果要计算不重复的指标 比如一个用户一天下了多个订单 用这样的表计算一天有多少用户下单 这个用户肯定是去重的 下多个订单也应该视为 ...

  7. C#去掉list集合中的重复数据

    List<string> conList= new List<string>(); List<string> listII = new List<string ...

  8. z-tree

    1 获取所有的节点集合 var nodes = treeObj.getNodes();//只获取根节点 var nodesAll = treeObj.transformToArray(nodes);/ ...

  9. CentOS 6.5 源码编译搭建LNMP(三台独立主机实现)

    搭建前准备: 1.三台独立主机 nginx:192.168.1.102 php-fpm:192.168.1.105 mysql:192.168.1.103 2.相关软件的源码包 nginx:nginx ...

  10. 用Python玩转词云

    第一步:引入相关的库包: #coding:utf-8 __author__ = 'Administrator' import jieba #分词包 import numpy #numpy计算包 imp ...