我们在前面介绍Scala编程时对Scala库提供的函数库没有介绍,Scala支持的集合类型比如List,Set,Map,Array功能非常强大,如果你之前用过C#的LINQ,基本上LINQ支持的功能Scala的集合类型都支持,很多以前需要循环来实现的,在Scala中可能只需要一行就可以实现,有时间我们专门来介绍下Scala支持的集合类型。
本篇对Scala中最常用的List类型做个概要的介绍。
List和Array非常想象,但有两个重要的不同点,List是不可变的(immutable),也就是List创建后,不可以修改。List具有递归的结构(也就是链接表结构)而数组不是。
和数组一样,List中的元素必须是同类型的。下面我们来看看如何构造一个List对象:
scala> val fruit = List("apple","oranges","pears") fruit: List[String] = List(apple, oranges, pears) scala> val empty=List() empty: List[Nothing] = List() scala> val fruit = "apple" :: "orange" :: "pears" :: Nil fruit: List[String] = List(apple, orange, pears) scala> val empty = Nil empty: scala.collection.immutable.Nil.type = List() scala> val nums = 1 :: 2 :: 3 :: 4 :: Nil nums: List[Int] = List(1, 2, 3, 4)
List可以通过构造函数创建,也可以通过:: 连接每个元素,::是右结合的,在通过::构造列表时,需要在最右边使用Nil,这样编译器才知道构造一个List,因为字符串String本身不支持::操作。
基本操作