scala(四)集合

List

// 字符串列表
val site: List[String] = List("Runoob", "Google", "Baidu")
// 整型列表val nums: List[Int] = List(1, 2, 3, 4)
// 空列表val empty: List[Nothing] = List()
// 二维列表val dim: List[List[Int]] =
   List(
      List(1, 0, 0),
      List(0, 1, 0),
      List(0, 0, 1)
   )

构造列表的两个基本单位是 Nil ::

Nil 也可以表示为一个空列表。

// 字符串列表
val site = "Runoob" :: ("Google" :: ("Baidu" :: Nil))
// 整型列表
val nums = 1 :: (2 :: (3 :: (4 :: Nil)))
// 空列表
val empty = Nil
// 二维列表
val dim = (1 :: (0 :: (0 :: Nil))) ::
          (0 :: (1 :: (0 :: Nil))) ::
          (0 :: (0 :: (1 :: Nil))) :: Nil

Scala列表有三个基本操作:

  • head 返回列表第一个元素

  • tail 返回一个列表,包含除了第一元素之外的其他元素

  • isEmpty 在列表为空时返回true

    连接列表

你可以使用 ::: 运算符或 List.:::() 方法或 List.concat() 方法来连接两个或多个列表。实例如下:

object Test {
   def main(args: Array[String]) {
      val site1 = "Runoob" :: ("Google" :: ("Baidu" :: Nil))
      val site2 = "Facebook" :: ("Taobao" :: Nil)
      // 使用 ::: 运算符
      var fruit = site1 ::: site2
      println( "site1 ::: site2 : " + fruit )
      
      // 使用 List.:::() 方法
      fruit = site1.:::(site2)
      println( "site1.:::(site2) : " + fruit )
      // 使用 concat 方法
      fruit = List.concat(site1, site2)
      println( "List.concat(site1, site2) : " + fruit  )
      
   }}

List.fill()

我们可以使用 List.fill() 方法来创建一个指定重复数量的元素列表:

List.tabulate()

List.tabulate() 方法是通过给定的函数来创建列表。

方法的第一个参数为元素的数量,可以是二维的,第二个参数为指定的函数,我们通过指定的函数计算结果并返回值插入到列表中,起始值为 0,

List.reverse

List.reverse 用于将列表的顺序反转





Map

// 空哈希表,键为字符串,值为整型
var A:Map[Char,Int] = Map()
// Map 键值对
val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
需要为键值对定义类型。如果需要添加 key-value 对,可以使用 + 号,如下所示:
A += ('I' -> 1)
A += ('J' -> 5)
A += ('K' -> 10)
A += ('L' -> 100
Map 基本操作
keys    返回 Map 所有的键(key)    
values    返回 Map 所有的值(value)    
isEmpty    在 Map 为空时返回true

Map 合并

你可以使用 ++ 运算符或 Map.++() 方法来连接两个 Map,Map 合并时会移除重复的 key。


请使用浏览器的分享功能分享到微信等