Kotlin中的Map与List、Set一样,Map也分为只读Map和可变的MutableMap。 Map没有继承于Collection接口。其类图结构如下: ?...mutableMapOf(vararg pairs: Pair): MutableMap 创建一个可编辑的MutableMap对象。... 把一个只读的Map转换为可编辑的MutableMap。...= map.toMutableMap() >>> mutableMap {1=a, 2=b, 3=c, -1=z} >>> mutableMap[1]="x" >>> mutableMap {1=x,....clear(): Unit 清空MutableMap。
Map mutableMap = new HashMap(); mutableMap.put("USA", "North America"); Map<String..., () -> unmodifiableMap.put("Canada", "North America")); 但是包装器里面底层的可变Map仍然可以改变,修改也反映在不可修改的Map中: mutableMap.remove...("USA"); assertFalse(unmodifiableMap.containsKey("USA")); mutableMap.put("Mexico", "North America");...("USA"); assertTrue(immutableMap.containsKey("USA")); mutableMap.put("Mexico", "North America"); assertFalse...builder() .putAll(mutableMap) .put("Costa Rica", "North America") .build(); assertTrue
而遍历可以使用forEach的方式,也可以通过in关键字来完成遍历 class TestKotlin { fun function() { var mutableMap: MutableMap... = mutableMapOf(1 to "one", 2 to "two", 3 to "three") mutableMap.forEach {...print("key:${it.key}...value:${it.value}") } for ((key, value) in mutableMap) {...} } 而访问Map中的Key或者Value则可以类似于Python中字典的形式访问 class TestKotlin { fun function() { var mutableMap...: MutableMap = mutableMapOf(1 to "one", 2 to "two", 3 to "three") print(mutableMap
map.getOrDefault("java", 0)) map.forEach{ println("${it.key}, ${it.value}") } val mutableMap...= mutableMapOf("Jack" to 20, "Jim" to 18) //添加元素 mutableMap += "jim" to 30 mutableMap["jim..."] = 31 mutableMap.getOrPut("role"){19} println(mutableMap) } to,实际上是一个函数,返回一个Pair结果 去重 val
= 12 Jack = 20 四、可变 Map 集合 ---- 通过调用 mutableMapOf 函数 , 可创建 可变 Map 集合 ; 代码示例 : fun main() { val mutableMap...= mutableMapOf("Tom" to 18, "Jerry" to 12, "Jack" to 20) println(mutableMap) // 增加元素 mutableMap...+= "Rose" to 18 mutableMap.put("Tim", 21) println(mutableMap) // 查询是否有 某个键 对应的值, 如果没有则添加一个默认值进去...mutableMap.getOrPut("Kate", {19} ) println(mutableMap) } 执行结果 : {Tom=18, Jerry=12, Jack=20}
MutableMap 自然是可以代理可读写的属性的,下面的扩展方法印证了这一点: public inline operator fun MutableMap...., property: KProperty, value: V) { this.put(property.name, value) } 而非 MutableMap 呢,因为是不可修改的...当然不,仔细看看 MutableMap 和 Map 的 getValue 有什么不同?...我在前面有篇讲泛型的文章:Kotlin 泛型(修订版) 提到过可变集合与不可变集合的型变,前者是不变的,而后者是协变的,所以 Map 的 getValue 版本的返回值可以是 V 的子类,而 MutableMap...打人也没用,异常走你~ 其实这事儿也不难,我们顺藤摸瓜很容易就发现这么个函数: public fun MutableMap.withDefault(defaultValue:
Set、List、Map(每类容器又分为只读和可变两种,前面三个为只读,添加Mutable为可变) MutableSet、MutableList、MutableMap...创建可变容器 var list:MutableList = mutableListOf() var set:MutableSet = mutableSetOf() //创建MutableMap...时,需要使用Pair(Key, Value) var map:MutableMap = mutableMapOf(Pair("name", "zack"), Pair(...mutableListOf() //此时it.age的含义就是:将humanList中的人,按照年龄来升序排 humanList.sortBy{ it.age } 4、映射Map/MutableMap...4.1、基本方法 //MutableMap的初始赋值需要通过Pair(Key, Value)来进行 var testMap:MutableMap = mutableMapOf
);mutableList.add("apple");mutableList.add("banana");mutableList.add("orange");Map mutableMap... = new HashMap();mutableMap.put("apple", 1);mutableMap.put("banana", 2);mutableMap.put("orange", 3)
*/ fun action( context: LifecycleOwner, requestLogin: Boolean, loginParams: MutableMap...override fun action( context: LifecycleOwner, requestLogin: Boolean, loginParams: MutableMap...override fun action( context: LifecycleOwner, requestLogin: Boolean, loginParams: MutableMap...fun action( context: LifecycleOwner, requestLogin: Boolean = true, loginParams: MutableMap...block(LoginResult.UnKnown()) } } } fun requestLogin(loginParams: MutableMap
mutableList.add("apple"); mutableList.add("banana"); mutableList.add("orange"); Map mutableMap...= new HashMap(); mutableMap.put("apple", 1); mutableMap.put("banana", 2); mutableMap.put("orange",
// 创建不可变映射 val map: Map = mapOf("a" to 1, "b" to 2, "c" to 3) // 创建可变映射 val mutableMap:...MutableMap = mutableMapOf("x" to 10, "y" to 20) mutableMap["z"] = 30 // 使用扩展函数 val keys
mutableSetOf("A", "B", "C") mutableSet.add("D") val map: Map = mapOf("One" to 1, "Two" to 2) val mutableMap...: MutableMap = mutableMapOf("One" to 1, "Two" to 2) mutableMap["Three"] = 3 字符串操作 Kotlin
Exercises.freeExamples.KVS,String], table: scala.collection.mutable.Map[String,String])Unit 7 val mutableMap...= scala.collection.mutable.Map[String,String]() 8 //> mutableMap : scala.collection.mutable.Map...[String,String] = Map() 9 goScript(script,mutableMap) 10 println(mutableMap) //> Map(JPN -> Japan...) => table += (key -> value); next 65 case Del(key,next) => table -= key; next 66 } 67 val mutableMap...= scala.collection.mutable.Map[String,String]() 68 goScript(script,mutableMap) 69 println(mutableMap
具体的可以见 AnchorTaskUtils#getSortResult 方法,它有三个参数 list 存储所有的任务 taskMap: MutableMap<class, AnchorTask>...= HashMap()</class存储所有的任务,key 是 Class ,value 是 AnchorTask taskChildMap: MutableMap<class, ArrayList<...不相等试,证明有环 1 @JvmStatic 2 fun getSortResult( 3 list: MutableList, taskMap: MutableMap..., AnchorTask>, 4 taskChildMap: MutableMap, ArrayList...6 7 // 储存当前任务的子任务, key 是当前任务的 class,value 是 AnchorTask 的 list 8 private val taskChildMap: MutableMap
Mutable)List ListIterator ListIterator MutableListIterator (Mutable)ListIterator Map Map MutableMap... (Mutable)Map Map.Entry Map.Entry MutableMap.MutableEntry (Mutable)Map.
hasValue org.hamcrest.Matcher..kotlin.collections.Map<, V!...hasEntry org.hamcrest.Matcher<(kotlin.collections.MutableMap<out K!, out V!
= 12 Jack = 20 十五、可变 Map 集合 ---- 通过调用 mutableMapOf 函数 , 可创建 可变 Map 集合 ; 代码示例 : fun main() { val mutableMap...= mutableMapOf("Tom" to 18, "Jerry" to 12, "Jack" to 20) println(mutableMap) // 增加元素 mutableMap...+= "Rose" to 18 mutableMap.put("Tim", 21) println(mutableMap) // 查询是否有 某个键 对应的值, 如果没有则添加一个默认值进去...mutableMap.getOrPut("Kate", {19} ) println(mutableMap) } 执行结果 : {Tom=18, Jerry=12, Jack=20}
. */ public inline fun > Iterable.associateByTo(destination: M,...* @sample samples.collections.Collections.Transformations.groupBy */ public inline fun <T, K, M : MutableMap
列表:List/MutableList; 集:Set/MutableSet; 映射:Map/MutableMap; 集:Collection/MutableCollection; 迭代器:Iterable...public interface Map{...} public interface MutableMap : Map {...} ?
类默认是不允许继承的,只有添加open前缀才允许该类被继承;至于容器默认为只读容器,如果需要进行修改则需加上Mutable形成新的容器,比如MutableSet表示可变集合,MutableList表示可变队列,MutableMap...可变集合 mutableSetOf 只读队列List listOf 可变队列MutableList mutableListOf 只读映射Map mapOf 可变映射MutableMap...元素的键与值是一一对应的关系,相同的键名指向的值对象是唯一的,所以映射中每个元素的键名各不相同,这个特性使得映射的变更操作与队列存在以下不同之处(注意增删操作必须由MutableMap来完成): 1、...映射的containsKey方法判断是否存在指定键名的元素,containsValue方法判断是否存在指定值对象的元素; 2、MutableMap的put方法不单单是添加元素,而是智能的数据存储;每次调用...put方法,映射会先根据键名寻找同名元素,如果找不到就添加新元素,如果找得到就用新元素替换旧元素; 3、MutableMap的remove方法,是通过键名来删除元素的; 4、调用mapOf和mutableMapOf
领取专属 10元无门槛券
手把手带您无忧上云