scala(四)集合

laoma8888發表於2018-08-30

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。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31496956/viewspace-2213143/,如需轉載,請註明出處,否則將追究法律責任。

相關文章