在语法层面,支持关联映射

1 var capital = Map("china" -> "beijing")
2 capital += ("japan" -> "dongjing")
3 println(capital("japan"))

列表 List:

scala> val numbers = List(1, 2, 3, 4)
numbers: List[Int] = List(1, 2, 3, 4)

使用numbers(0)等来获取链表中的数据

集 Set:

scala> Set(1, 1, 2)
res0: scala.collection.immutable.Set[Int] = Set(1, 2)

同样也是用set(1)等来取数据。括号里的元素是set中的数据,要是存在,返回true,否则返回false。另外,set中的元素是不重复的,会自动删除掉

元组 Tuple:

元组是在不使用类的前提下,将元素组合起来形成简单的逻辑集合。

val tup1 = ("one", 1)
  tup1 match {
    case ("one", 1) => println("match completely")
    case ("two", 2) => println("match two")
    case (arg1, arg2) => println("match %s".format(arg1))
  }

1.元组中如何获取其中的数据:tup1._1获取元组中的第一个数据。同理,tup1._2获取元组中的第二个数据。注意下标是从1开始的。

2.如例子中所示,元组可以和模式匹配很好的结合。例子中,前两个case都是具体的值匹配。最后一个是将元组中的值,传给arg1和arg2,再做相应的处理。

2.元组可以用("one",1)或者("one" -> 1)的形式来创建。不要和Map搞混了,Map只能使用后一种形式。

映射 Map:

它可以持有基本数据类型。

Map(1 -> 2)
Map("foo" -> "bar")

映射的值可以是映射甚或是函数。

Map(1 -> Map("foo" -> "bar"))
Map("timesTwo" -> { timesTwo(_) })

 注意:Map也是使用map(1)的形式,取其中的数据。

         也可以使用map.get(1)的形式取,不过这种情况下,返回的是option对象,要通过模式匹配或者getOrElse()来取。

scala> map.get(1).getOrElse(0)
res4: Any = Map(one -> 1)