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
