欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Android中kotlin的Map简单使用方法

Android中kotlin的Map简单使用方法

2025/2/21 3:09:01 来源:https://blog.csdn.net/qq_38306233/article/details/140727690  浏览:    关键词:Android中kotlin的Map简单使用方法

在Kotlin中,‌Map是一种特殊类型的集合,‌用于存储键值对。‌使用Map可以方便地通过键来检索和存储值。

1.创建Map

使用mapOf函数创建不可变的Map。‌可以通过两种方式初始化键值对:‌使用to函数或Pair对象。‌例如:‌

val map = mapOf("Tom" to 18, "Jerry" to 12, "Jack" to 20)
// 或者
val map2 = mapOf(Pair("Tom", 18), Pair("Jerry", 12), Pair("Jack", 20))

使用mutableMapOf函数创建可变的Map,‌以便后续添加、‌修改或删除键值对。‌例如:‌


val numbersMap = mutableMapOf("one" to 1, "two" to 2, "three" to 3)

2.访问和修改Map中的元素

使用方括号[]运算符通过键访问对应的值。‌如果键不存在,‌返回null。‌例如:‌

val value = map["Tom"]  // 如果"Tom"存在于map中,‌则value将被赋值为18

使用put方法添加或修改键值对。‌如果键已存在,‌则更新其对应的值;‌否则,‌添加新的键值对。‌例如:‌

numbersMap.put("four", 4)  // 如果"four"不存在,‌则添加;‌如果已存在,‌则更新其值

 使用putAll方法一次性添加多个键值对。‌这可以接受一个Map或一组Pair作为参数。‌例如:‌

numbersMap.putAll(mapOf("five" to 5, "one" to 10))  // 将多个键值对添加到map中

3.遍历Map

使用for-in循环遍历Map的键值对。‌例如:‌

for ((key, value) in map) {println("Key: $key, Value: $value")
}


使用entries属性获取一个包含所有键值对的集合,‌然后遍历这个集合。‌例如:‌

for (entry in map.entries) {println("Key: ${entry.key}, Value: ${entry.value}")
}

4.Map的方法

containsKey(key: K):‌检查Map是否包含指定的键。‌
containsValue(value: V):‌检查Map是否包含指定的值。‌
size:‌返回Map中的键值对数量。‌
isEmpty:‌检查Map是否为空。‌
clear():‌清除Map中的所有条目。‌
remove(key: K):‌删除指定的键及其对应的值,‌如果键不存在则不执行任何操作。‌例如:‌

if (map.containsKey("Tom")) {map.remove("Tom")  // 删除键为"Tom"的条目(‌如果存在)‌
}


 

实例代码:


//callid 是String的参数,callDataBean是数据实体参数
//使用put方法添加或修改键值对。‌如果键已存在,‌则更新其对应的值;‌否则,‌添加新的键值对
private var mCallInfoMap : MutableMap<K, V>  = mutableMapOf<K, V>()
private val mCallActiveTimeMap : MutableMap<String, Long> = HashMap()//每次都把新的callInfo数据实体更新mCallInfoMap.put(callid,callDataBean)//如果state为7 8  则移除该数据for((callid, callDataBean) in mCallInfoMap){if(callDataBean.state == 7 || callDataBean ==8){mCallInfoMap.remove(callid)}}//当state 为 1时 ,记录开始通话时间for (entry in mCallInfoMap.entries) {println("Key: ${entry.key}, Value: ${entry.value}")if(entry.state == 1){//如果没有包含这个callid,则添加他的activetimeif(!mCallActiveTimeMap.containsKey(callid)){	mCallActiveTimeMap.put(callid,activeTime)}}}/*********************分割线  以下方法仅供参考*********************///取出开始通话时间mCallActiveTimeMap[callid]//清除通话时间mCallActiveTimeMap.remove[callid]// 遍历Map集合map.forEach { key, value ->println("键: $key, 值: $value")}

参考: 

​​​​​Kotlin-Map

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词