[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 以...