scala 定义空的list_scala 学习笔记一 列表List

本文介绍了Scala列表的特点,如不可变性和递归结构,并详细阐述了列表的基本操作,包括head、tail、isEmpty等。还列举了如连接列表、填充列表、反转列表、添加元素、过滤元素等常用方法,帮助读者深入理解Scala列表的使用。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值