第33讲:List的一阶函数操作代码实战详解
今天来看一下关于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的一阶函数操作代码实战详解的更多相关文章
- Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第52讲:Scala中路径依赖代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- 第52讲:Scala中路径依赖代码实战详解
今天学习了scala中的路径依赖,来看一下实战代码 class Outer{ private val x = 10 class Inner{ private val y = x +10 } ...
- 王家林系列之scala--第69讲:Scala并发编程react、loop代码实战详解
刚才看了一下,群里王家林老师又更新课程了,真为王老师的勤奋感到佩服,于是迫不及待的下载下来观看学习.本期讲的是关于scala并发编程的react.loop代码实战. 信息来源于 DT大数据梦工厂微信公 ...
- 第71讲:Scala界面Panel、Layout实战详解
今天学习了王家林老师scala讲座的第71讲,scala界面编程panel实战.让我们一起来看一下. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于王家林老师的 ...
- Scala 深入浅出实战经典 第39讲:ListBuffer、ArrayBuffer、Queue、Stack操作代码实战
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- python操作redis用法详解
python操作redis用法详解 转载地址 1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用 ...
- Scala深入浅出实战经典之 List的foldLeft、foldRight、sort操作代码实战
Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 3 ...
随机推荐
- 0525 SCRUM项目7.0
主题:在下一个SPRINT中做的更好 一,实验回顾总结 当谈到在一个团队里的收获,首当其冲的便是对于团队工作流程的切身体会.亲力亲为.从申报材料.问卷设计.访谈提纲.团队建设.书签制作到实地访谈.问卷 ...
- vim总结
1.vim基础用法 注:该思维导图来自笔者<Linux就该这么学>读书笔记. 移动光标: 命令 描述 k 向上移动光标(移动一行) j 向下移动光标(移动一行) h 向左移动光标(移动一个 ...
- 测试Python代码
作为程序员,懂得测试,这是必须的职业技能.很遗憾,我以前从未意识到这点,因此经历了很多叫苦不迭的开发生涯.当然了,期望每个人都成为测试高手也是不可能的,但是最基本的单元测试啥的是不惜的,尤其是现在中小 ...
- 8.9 CSS知识点2
4.关系选择符 包含选择符(Descendant combinator) E F 选择所有被E元素包含的F元素 <style type="text/css"> h1 ...
- Jsoncpp的使用
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- [wechall] Time to Reset (Exploit, Coding, PHP)
Time to Reset (Exploit, Coding, PHP) <?php $start=1453000000; $cstf="nipNlJ6ZQPuGQ3i90QUTP8J ...
- JAVA通过HTTP访问:Post+Get方式(转)
public class TestGetPost { /** * 向指定URL发送GET方法的请求 * @param url 发送请求的URL * @param param 请求参数,请求参数应该是n ...
- web工程中URL地址的推荐写法
三.web工程中URL地址的推荐写法 使用c标签<c:url value="" /> 会自动添加项目名 -> value中的值 前面要加 “/” 在JavaWeb ...
- iOS获取当前app的名称和版本号
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // ap ...
- 图解 & 深入浅出 JavaWeb:Servlet必会必知
从[JavaEE 要懂的小事] Http相关,一直想写点Web开发相关的.最近项目接口开发紧,还有准备新的九月份战斗.JDK IO源码就隔一段落,温故知新看看Servlet & JSP 相关. ...