Kotlin - Map 字典
Map 類型
Key具有唯一性,存入 Entry 時當 Key 重復(fù)時會覆蓋之前的 Value。to 關(guān)鍵字本身是一個中綴表達式,返回一個 Pair。
| 創(chuàng)建方式 | 舉例 |
| 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順序會發(fā)生變化 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 數(shù)量,是一個Int |
轉(zhuǎn)換?
| Map.Entry.toPair () :Pair<K,V> | 把 Map 的 Entry 轉(zhuǎn)換為 Pair,是 entry 的方法 |
| Map.toMutableMap () | 把只讀的 Map 轉(zhuǎn)化為可編輯的 MutableMap |
| Iterable<Pair<K,V>>.toMap (Map):Map | Iterable<Pair<K,V>>.toMap (Map):Map 把裝有 Pair 的 Iterable 轉(zhuǎn)換為 Map |
增刪
| put (鍵,值) | put(K,V):V? 添加 Entry,如果 Key 存在就覆蓋 |
| plus (二元組/集合/數(shù)組/序列) plusAssign (二元組/集合/數(shù)組/序列) minus (二元組/集合/數(shù)組/序列)????? minusAssign (二元組/集合/數(shù)組/序列)???? | 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? 根據(jù) Key 獲取對應(yīng)的 Value,沒有則返回null,推薦使用操作符 [ ] |
| getValue(K):V 根據(jù) Key 獲取對應(yīng)的 Value,沒有則報錯 | |
| getOrDefault(K,V):V 根據(jù) Key 獲取對應(yīng)的 Value,沒有則返回默認值,默認值類型要和原值的類型一樣 | |
| getOrElse(K,() -> V):V 同上??? | |
| getOrPut(K,() -> V):V 根據(jù) Key 獲取對應(yīng)的 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? 根據(jù) Key 移除 Entry,返回被移除的 Value,沒有對應(yīng)的 Key 返回 null |
| clear () | clear ():Unit 清空 MutableMap 中的 Entry |
總結(jié)
以上是生活随笔為你收集整理的Kotlin - Map 字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux CPU占用率高
- 下一篇: 通过短信验证码修改密码