List 列表
List 代表元素顺序固定的不可变链表。
初始化
package main object Test { def main(args: Array[String]): Unit = { val list1 = List(1, 2, 3); println(list1.getClass.getName); //scala.collection.immutable.$colon$colon println(list1); //List(1, 2, 3) val list2 = List(1 to 10: _*); println(list2.getClass.getName); //scala.collection.immutable.$colon$colon println(list2); //List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val list3 = List.empty; println(list3.getClass.getName); //scala.collection.immutable.Nil$ println(list3); //List() val list4 = Nil; println(list4.getClass.getName); //scala.collection.immutable.Nil$ println(list4); //List() } }
:: 操作符
列表定义了一个 :: 方法,用来增加一个元素到一个List的头部。
或者使用 :: 操作符生成列表,:: 也叫 cons操作符。它的功能是构造一个新的内存对象,包含操作符的两端的元素。
在使用它的时候,必须在表达式的最后增加一个列表,比如:Nil 或 List()。 这样表达式才知道是调用List的 :: 方法。
package main object Test { def main(args: Array[String]): Unit = { val t = List(1, 2, 3); val list1 = 1 :: 2 :: 3 :: Nil; println(list1.getClass.getName); //scala.collection.immutable.$colon$colon println(list1); //List(1, 2, 3) val list2 = 1 :: 2 :: 3 :: List(); println(list2.getClass.getName); //scala.collection.immutable.$colon$colon println(list2); //List(1, 2, 3) val list3 = t :: 5 :: 6 :: 7 :: Nil; println(list3.getClass.getName); //scala.collection.immutable.$colon$colon println(list3); //List(List(1, 2, 3), 5, 6, 7) println(list3.head); //List(1, 2, 3) val list4 = 7 :: 8 :: 9 :: t; println(list4); //List(7, 8, 9, 1, 2, 3) println(list4.head); //7 } }
::: 操作符
::: 用来将一个列表增加到另一个列表的头部。操作符左边的列表 增加 到右边的列表的头部。
package main object Test { def main(args: Array[String]): Unit = { val t1 = List(1, 2, 3); val t2 = 5 :: 6 :: 7 :: 8 :: Nil; val list = t1 ::: t2; println(list); //List(1, 2, 3, 5, 6, 7, 8) println(list.head); //1 println( t2 ::: t1 ); //List(5, 6, 7, 8, 1, 2, 3) } }

浙公网安备 33010602011771号