当前位置: 首页 > article >正文

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,则添加他的activetime
			if(!mCallActiveTimeMap.containsKey(callid)){	
				mCallActiveTimeMap.put(callid,activeTime)
			}
		}
	}
	

/*********************分割线  以下方法仅供参考*********************/
	//取出开始通话时间
	mCallActiveTimeMap[callid]
	
	//清除通话时间
	mCallActiveTimeMap.remove[callid]

// 遍历Map集合
    map.forEach { key, value ->
        println("键: $key, 值: $value")
    }

参考: 

​​​​​Kotlin-Map


http://www.kler.cn/a/551448.html

相关文章:

  • 【现代深度学习技术】深度学习计算 | GPU
  • STM32 ADC介绍(硬件原理篇)
  • Linux的SSH无法连接(shell request failed on channel 0)
  • Dockerfile 详解:构建自定义镜像
  • AUTO TECH China 2025 广州国际汽车技术展览会:引领汽车科技新潮流
  • 日常问题-pnpm install执行没有node_modules生成
  • OpenHarmony 系统性能优化——默认关闭全局动画
  • DeepSeek教unity------Dotween
  • 网络安全学习笔记之Internet基本知识
  • 开发一个交易所需要哪些技术
  • 算法-栈括号匹配
  • Go语言的游戏开发
  • 视点坐标及鼠标交点坐标的信息显示(七)
  • HBuilderX中uni-app打开页面时,如何用URL传递参数,Query参数传递
  • docker拉取失败received unexpected Http status:500 Internal Server Error
  • HTML之JavaScript对象
  • Ubuntu 22.04.5 LTS 安装企业微信,(2025-02-17安装可行)
  • 后端开发:高效数据库查询优化实战指南
  • TensorFlow 和 PyTorch 哪个更适合新手学习?
  • Ollmao (OH-luh-毛程序包及源码) 是一款原生 SwiftUI 应用程序,它与 Ollama 集成,可在 Mac 上本地运行强大的 AI 模型