日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kotlin - Map 字典

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kotlin - Map 字典 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Map 類型

Key具有唯一性,存入 Entry 時當 Key 重復時會覆蓋之前的 Value。to 關鍵字本身是一個中綴表達式,返回一個 Pair。

創建方式舉例
mapOf ()

val map1 = mapOf( 'A' to 3, 2 to "哈哈", false to true )? ? ? ? //隨意類型

val map2 = mapOf<Int,String>( 1 to "你", 2 to "我", 3 to "他")? ? ? ? //確定類型

mutableMapOf ()

hashMapOf ()

linkedMapOf ()

sortedMapOf ()

HashMap,允許null鍵null值,隨著存儲Entry順序會發生變化

LinkedHashMap,使用鏈表維護順序,遍歷時得到的是先存入的

TreeMap,使用紅黑二叉樹進行排序

emptyMap ()

val em = emptyMap<Int, String>()

val me = mapOf<Int, String>()

em.size=0,em.isEmpty()=true,em.hashCode()=0

空map都是相等的,em==me 為 true

?屬性

.entries

獲取 Map 中的所有 Entry,是一個Set

Entry.component1(),訪問 Key

Entry.component2(),訪問 Value

.keys獲取 Map 中的所有 Key,是一個Set
.values獲取 Map 中的所有 Value,是一個Set
.size?獲取 Map 中的 Entry 數量,是一個Int

轉換?

Map.Entry.toPair () :Pair<K,V>把 Map 的 Entry 轉換為 Pair,是 entry 的方法
Map.toMutableMap ()把只讀的 Map 轉化為可編輯的 MutableMap
Iterable<Pair<K,V>>.toMap (Map):Map

Iterable<Pair<K,V>>.toMap (Map):Map

把裝有 Pair 的 Iterable 轉換為 Map

增刪

put (鍵,值)

put(K,V):V?

添加 Entry,如果 Key 存在就覆蓋

plus (二元組/集合/數組/序列)

plusAssign (二元組/集合/數組/序列)

minus (二元組/集合/數組/序列)?????

minusAssign (二元組/集合/數組/序列)????

plus(Pair<K,V>):Map<K,V>

plus(Map<K,V>):Map<K,V>

plus(Iterable<Pair<K,V>>):Map<K,V>

plus(Array<Pair<K,V>>):Map<K,V>

plus(Sequence<Pair<K,V>>):Map<K,V>

加法運算,拼接,推薦使用操作符 +

plusAssign,拼接后賦值給原Map,推薦操作符 +=

減法同理?????

?獲取

get (鍵)

getValue (鍵)

getOrDefault (鍵,默認值)

getOrElse (鍵,默認值)

getOrPut (鍵,默認值)

get(K):V?

根據 Key 獲取對應的 Value,沒有則返回null,推薦使用操作符 [ ]

getValue(K):V

根據 Key 獲取對應的 Value,沒有則報錯

getOrDefault(K,V):V

根據 Key 獲取對應的 Value,沒有則返回默認值,默認值類型要和原值的類型一樣

getOrElse(K,() -> V):V

同上???

getOrPut(K,() -> V):V

根據 Key 獲取對應的 Value,沒有則添加進 Map 中

判斷

containsKey (鍵)

containsValue (值)

containsKey(K):Boolean

Map中是否包含該 Key,包含true,不含false

containsValue (V):Boolean

Map中是否包含該 Value,包含true,不含false

運算

mapKeys (function)

mapValues (function)

mapKeys(Map.Entry<K,V> -> R):Map<R,V>)

對 Map 中的 Entry 進行運算后,將 Key 賦予新值

mapValues(Map.Entry<K,V> -> R):Map<K,R>)

對 Map 中的 Entry 進行運算后,將 Value 賦予新值

篩選

filterKeys (predicate)

filterValues (predicate)

filter (predicate)

filterKeys(K -> Boolean):Map<K,V>

返回一個Map,包含所有 Key 滿足條件的 Entry

filterValues(V?-> Boolean):Map<K,V>

返回一個Map,包含所有 Value 滿足條件的 Entry

filter(Map.Entry<K,V> -> Boolean):Map<K,V>

返回一個Map,包含所有 Entry 滿足條件的 Entry

MutableMap 中的方法

remove (鍵):值?

remove (K):V?

根據 Key 移除 Entry,返回被移除的 Value,沒有對應的 Key 返回 null

clear ()

clear ():Unit

清空 MutableMap 中的 Entry

總結

以上是生活随笔為你收集整理的Kotlin - Map 字典的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。