scala 学习笔记一 列表List
1、介绍
Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。。
列表的元素类型 T 可以写成 List[T]。例如,以下列出了多种类型的列表:
构造列表的两个基本单位是 Nil 和 ::
Nil 也可以表示为一个空列表。
以上实例我们可以写成如下所示:
2、列表基本操作
Scala列表有三个基本操作:
1、head
返回列表第一个元素
2、tail
返回一个列表,包含除了第一元素之外的其他元素
3、isEmpty
在列表为空时返回true
对于Scala列表的任何操作都可以使用这三个基本操作来表达。实例如下:
连接列表
++: 与++不同的是使用的右边边的数据类型
List.fill()
我们可以使用 List.fill() 方法来创建一个指定重复数量的元素列表:
List.tabulate()
List.tabulate() 方法是通过给定的函数来创建列表。
方法的第一个参数为元素的数量,可以是二维的,第二个参数为指定的函数,我们通过指定的函数计算结果并返回值插入到列表中,起始值为 0,实例如下
List.reverse
List.reverse 用于将列表的顺序反转,实例如下:
Scala List 常用方法
1、为列表预添加元素
+: 在List的头部增加元素
:+ 在后面追加元素
2、def addString(b: StringBuilder): StringBuilder
将列表的所有元素添加到 StringBuilder
3、def addString(b: StringBuilder, sep: String): StringBuilder
将列表的所有元素添加到 StringBuilder,并指定分隔符
4、通过列表索引获取元素
def apply(n: Int): A
5、检测列表中是否包含指定的元素
def contains(elem: Any): Boolean
6、将列表的元素复制到数组中
def copyToArray(xs: Array[A], start: Int, len: Int): Unit
7、去除列表的重复元素,并返回新列表
def distinct: List[A]
8、丢弃前n个元素,并返回新列表
def drop(n: Int): List[A]
9、丢弃最后n个元素,并返回新列表
def dropRight(n: Int): List[A]
10、从左向右丢弃元素,直到条件p不成立
def dropWhile(p: (A) => Boolean): List[A]
11、检测列表是否以指定序列结尾
def endsWith[B](that: Seq[B]): Boolean
12、判断是否相等
def equals(that: Any): Boolean
13、判断列表中指定条件的元素是否存在
判断l是否存在某个元素:
14、输出符号指定条件的所有元素。
过滤出长度为3的元素:
15、检测所有元素
例如:判断所有元素是否以"a"开头:
16、将函数应用到列表的所有元素
def foreach(f: (A) => Unit): Unit
17、获取列表的第一个元素,获取列表的最后一个原始
def head: A
def last: A
18、从指定位置 from 开始查找元素第一次出现的位置
def indexOf(elem: A, from: Int): Int
19、返回所有元素,除了最后一个,返回所有元素,除了第一个
def init: List[A]
def tail: List[A]
20、计算多个集合的交集
def intersect(that: Seq[A]): List[A]
21、检测列表是否为空
def isEmpty: Boolean
22、创建一个新的迭代器来迭代元素
def iterator: Iterator[A]
23、在指定的位置 end 开始查找元素最后出现的位置
def lastIndexOf(elem: A, end: Int): Int
24、返回列表长度
def length: Int
25、通过给定的方法将所有元素重新计算
def map[B](f: (A) => B): List[B]
26、查找最大元素,查找最小元素
def max: A,def min: A
27、列表所有元素作为字符串显示
def mkString: String
28、使用分隔符将列表所有元素作为字符串显示
def mkString(sep: String): String
29、列表反转
def reverse: List[A]
30、列表排序
def sorted[B >: A]: List[A]
31、检测列表在指定位置是否包含指定序列
def startsWith[B](that: Seq[B], offset: Int): Boolean
32、计算集合元素之和
def sum: A
33、提取列表的前n个元素
def take(n: Int): List[A]
34、提取列表的后n个元素
def takeRight(n: Int): List[A]
35、列表转换为数组
def toArray: Array[A]
36、返回缓冲区,包含了列表的所有元素
def toBuffer[B >: A]: Buffer[B]
37、List 转换为 Map
def toMap[T, U]: Map[T, U]
38、List 转换为 Seq
def toSeq: Seq[A]
39、List 转换为 Set
def toSet[B >: A]: Set[B]
41、列表转换为字符串
def toString(): String
参考:http://www.runoob.com/scala/scala-lists.html
scala 学习笔记一 列表List相关推荐
- Scala学习笔记(三)
Scala学习笔记(三) 一.模式匹配 1. 简单模式匹配 2. 匹配类型 3. 守卫 4. 匹配样例类 5. 匹配数组 6. 匹配列表 7. 匹配元组 8. 变量声明中的模式匹配 8.1 获取数组中 ...
- Scala学习笔记(一)
Scala学习笔记(一) 一.Scala简介 二.Scala安装与配置 1. 安装JDK 2. 安装Scala SDK 3. 安装IDEA插件 三.Scala解释器 1. 启动Scala解释器 2. ...
- python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解
前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...
- Scala 学习笔记
Scala 学习笔记 1 object func_exp { 2 println("Welcome to the Scala worksheet") //> Welcome ...
- Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)
Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...
- Scala学习笔记04:内建控制结构
Scala学习笔记04:内建控制结构 scala提供的控制结构并不算多,因为在函数式编程中,可以自己开发出各种功能的控制结构,所以scala提供的原生控制结构仅仅够用为止. 1.if - 判断 if是 ...
- Scala学习笔记03:操作符
Scala学习笔记03:操作符 一.scala中操作符与方法的等价性 scala中操作符即方法.方法即操作符.scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的 ...
- Scala学习笔记02:数据类型、常量与变量
Scala学习笔记02:数据类型.常量与变量 一.数据类型 1.基本数据类型 Byte 字节型 Short 短整型 Int 整型 Long 长整型 Char 字符型 String 字符串 Float ...
- 学习笔记之列表的使用
学习笔记之列表的使用 一.列表的通用操作 1.1.加号 1.2.乘号 1.3.in 和not in 1.4.len() 1.5.max()和min() 1.6.list.index() 1.7.lis ...
最新文章
- PBio-2018:如何设计可预测植物表型的微生物组
- 在Python中创建单例
- weka: naive bayes
- 记录MongoDB启动报错MongoDB not running on the provided host and port
- JDBC连接池C3P0,druid
- java中的堆、栈、方法区等比较
- android用IO实现日记的读写,android开发实现文件读写
- Nexus 安装与配置
- 网页为什么只加载了基本html,关于HTML的那些事
- 微软2011年10月最有价值专家(MVP)名单 51CTO十三位用户当选
- [转载] 七龙珠第一部——第012话 向神龙许愿
- 用C/C++实现SMC动态代码加密技术 .
- C++多线程的6种创建方法
- 对达内想说的八句话!(也适合各种参加培训的人)
- 同比、环比的区别及计算公式
- W(hadoop).Permission denied: user=dr.who, access=WRITE, inode=“/output“:root:supergroup:drwxr-xr-x
- 阿里云香港云服务器ECS适合什么场景?
- 希尔顿欢朋中国第200家酒店在杭州开业;玲娜贝儿在上海迪士尼全球首发亮相 | 全球旅报...
- 老夫决定把这九年的编程经验传授给你。
- 网络协议之:基于UDP的高速数据传输协议UDT
热门文章
- asp.net web开发步骤_Web 系统安全性测试之会话管理测试
- java多重继承用在什么地方_Java提高篇——Java实现多重继承
- python jsonpath效率低_Python学习:jsonpath的性能问题
- open with code 报错没有项目_Python开发:解决Ubuntu安装tesserocr报错
- 软件手游app介绍推广页html
- 服务器打包运营级H5商城源码
- Typecho Theme Aria书写自己的篇章
- android 后台耗时,android教程之使用asynctask在后台运行耗时任务
- 酷乐emlog下载插件
- WordPress 不用插件实现对长文章进行分页