Scala Map 對映 學習

2021-09-02 19:44:56 字數 2670 閱讀 6930

[color=red][b]map(對映)是一種可迭代的鍵值對(key/value)結構。[/b][/color]

所有的值都可以通過鍵來獲取。

map 中的鍵都是唯一的。

[color=red][b]map 也叫雜湊表(hash tables)。[/b][/color]

map 有兩種型別,可變與不可變,區別在於可變物件可以修改它,而不可變物件不可以。

[color=blue][b]預設情況下 scala 使用不可變 map。如果你需要使用可變集合,你需要顯式的引入 import scala.collection.mutable.map 類[/b][/color]

在 scala 中 你可以同時使用可變與不可變 map,[size=medium][color=red][b]不可變的直接使用 map,可變的使用 mutable.map[/b][/color][/size]。以下例項演示了不可變 map 的應用:

// 空雜湊表,鍵為字串,值為整型

var a:map[char,int] = map()

// map 鍵值對演示

val colors = map("red" -> "#ff0000", "azure" -> "#f0ffff")

定義 map 時,需要為鍵值對定義型別。如果需要新增 key-value 對,可以使用 + 號,如下所示:

a += ('i' -> 1)

a += ('j' -> 5)

a += ('k' -> 10)

a += ('l' -> 100)

[size=large][b]map 基本操作[/b][/size]

scala map 有三個基本操作:

[b]keys 返回 map 所有的鍵(key)[/b]

[color=red][b]values 返回 map 所有的值(value)[/b][/color]

[color=blue][b]isempty 在 map 為空時返回true[/b][/color]

例項以下例項演示了以上三個方法的基本應用:

object test

}

執行以上**,輸出結果為:

$ scalac test.scala 

$ scala test

colors 中的鍵為 : set(red, azure, peru)

colors 中的值為 : maplike(#ff0000, #f0ffff, #cd853f)

檢測 colors 是否為空 : false

檢測 nums 是否為空 : true

[size=medium][b]map 合併[/b][/size]

[color=red][b]你可以使用 ++ 運算子或 map.++() 方法來連線兩個 map[/b][/color],map 合併時會移除重複的 key。以下演示了兩個 map 合併的例項:

object test 

}

執行以上**,輸出結果為:

$ scalac test.scala 

$ scala test

colors1 ++ colors2 : map(blue -> #0033ff, azure -> #f0ffff, peru -> #cd853f, yellow -> #ffff00, red -> #ff0000)

colors1.++(colors2)) : map(blue -> #0033ff, azure -> #f0ffff, peru -> #cd853f, yellow -> #ffff00, red -> #ff0000)

[size=medium][b]輸出 map 的 keys 和 values[/b][/size]

以下通過 foreach 迴圈輸出 map 中的 keys 和 values:

object test 

}}

執行以上**,輸出結果為:

[size=medium][b]檢視 map 中是否存在指定的 key[/b][/size]

你可以使用 map.contains 方法來檢視 map 中是否存在指定的 key。例項如下:

執行以上**,輸出結果為:

$ scalac test.scala 

$ scala test

runoob 鍵存在,對應的值為 :

baidu 鍵存在,對應的值為 :

google 鍵不存在

scala map操作大全

引用自 package test map的操作 object mapdemo println combine map.contains test key 如果map中存在指定 key,返回 true,否則返回 false val age count combine map.count x print...

scala map操作大全

引用自 package test map的操作 object mapdemo println combine map.contains test key 如果map中存在指定 key,返回 true,否則返回 false val age count combine map.count x print...

訊息對映 學習總結

訊息對映和命令傳遞是緊密相連的兩部分。就像執行時型別識別和動態建立,後者都要在前者搭建的框架上執行。在訊息對映和命令傳遞中,訊息對映表的建立是基礎,命令的傳遞路線是核心,讓我跟隨書中的足跡,記下自己學習中的心得。訊息對映 的關鍵,是建立起一張訊息攀爬的線路網,即訊息對映表 message map 以...