今天来看一下关于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. jdbc操作数据库

    JDBC全称为:Java DataBase Connectivity(java数据库连接). SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC. 学习JD ...

  2. JS实现转动效果

    方案一 <div class="div_uploading"> <div class="div_uploading_scroll">&l ...

  3. http的响应对象

    Servlet 服务器 HTTP 响应 正如前面的章节中讨论的那样,当一个 Web 服务器响应一个 HTTP 请求时,响应通常包括一个状态行.一些响应报头.一个空行和文档.一个典型的响应如下所示: H ...

  4. 在一般处理文件中访问Session需要添加IRequiresSessionState(转载)

    原文:http://blog.csdn.net/cdsnaspnet/article/details/5695625s 通常我们经常,通过session判定用户是否登录.还有一些临时的.重要的数据也尝 ...

  5. mysql的sql_mode 模式修改 my.cnf

    1. sql_mode模式 mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!我们可以通过以下方式查看当前数据库使用的sql_mode: mysql ...

  6. IIS中使用LocalDB遇到错误:error 50,Local Database Runtime error occurred.的解决办法

    参见: [1] http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html [2] http://blogs.msdn.com/b/sq ...

  7. _Dispose(typeinfo,pointer ); 不知道说的是什么? 感觉会有用, 留待以后研究

        [传说]晓不得2013(26562729)  16:45:41别人把文章发出来,说明就是验证过的.[潜水]ひㄨㄨ那个ㄨㄨ(1548253108)  16:46:23[潜水]ひㄨㄨ那个ㄨㄨ(15 ...

  8. sqlserver表数据导出为insert into语句

    <1>select 'insert into table_name (name,code) values ('''+name+''','''+code+''');' sql_str  fr ...

  9. oracle SQL查询中间若干条记录

    方法一:利用rownum和差集函数minus select * from ( select * from emp order by sal) where rownum<13 minus sele ...

  10. Apache Spark-1.0.1集群搭建

    欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3866791.html Apache Spark   a fast and general engine ...