- Kotlin 教程
- Kotlin - 首页
- Kotlin - 概述
- Kotlin - 环境设置
- Kotlin - 架构
- Kotlin - 基本语法
- Kotlin - 注释
- Kotlin - 关键字
- Kotlin - 变量
- Kotlin - 数据类型
- Kotlin - 运算符
- Kotlin - 布尔值
- Kotlin - 字符串
- Kotlin - 数组
- Kotlin - 范围
- Kotlin - 函数
- Kotlin 控制流
- Kotlin - 控制流
- Kotlin - if...Else 表达式
- Kotlin - When 表达式
- Kotlin - For 循环
- Kotlin - While 循环
- Kotlin - Break 和 Continue
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集合
- Kotlin - 地图
- Kotlin 对象和类
- Kotlin - 类和对象
- Kotlin - 构造函数
- Kotlin - 继承
- Kotlin - 抽象类
- Kotlin - 接口
- Kotlin - 可见性控制
- Kotlin - 扩展
- Kotlin - 数据类
- Kotlin - 密封类
- Kotlin - 泛型
- Kotlin - 委托
- Kotlin - 解构声明
- Kotlin - 异常处理
- Kotlin 有用资源
- Kotlin - 快速指南
- Kotlin - 有用资源
- Kotlin - 讨论
Kotlin - 地图
Kotlin map 是一个键值对的集合,其中每个键都是唯一的,并且只能与一个值关联。虽然同一个值可以与多个键关联。我们可以声明键和值为任何类型;没有限制。
Kotlin map 可以是可变的(mutableMapOf)或只读的(mapOf)。
在其他编程语言中,地图也称为字典或关联数组。
创建 Kotlin 地图
对于地图创建,请使用标准库函数 mapOf() 用于只读地图,mutableMapOf() 用于可变地图。
可以通过将其转换为 Map 来获得可变地图的只读视图。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) println(theMap) val theMutableMap = mutableSetOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) println(theMutableMap) }
运行上述 Kotlin 程序时,将生成以下输出
{one=1, two=2, three=3, four=4} [(one, 1), (two, 2), (three, 3), (four, 4)]
使用 HashMap 创建地图
可以从 Java 的 HashMap 创建 Kotlin map。
示例
fun main() { val theMap = HashMap<String, Int>() theMap["one"] = 1 theMap["two"] = 2 theMap["three"] = 3 theMap["four"] = 4 println(theMap) }
运行上述 Kotlin 程序时,将生成以下输出
{four=4, one=1, two=2, three=3}
创建地图时使用 Pair
我们可以使用 Pair() 方法创建键值对
示例
fun main() { val theMap = mapOf(Pair("one", 1), Pair("two", 2), Pair("three", 3)) println(theMap) }
运行上述 Kotlin 程序时,将生成以下输出
{one=1, two=2, three=3}
Kotlin 属性
Kotlin map 具有获取地图的所有条目、键和值的属性。
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) println("Entries: " + theMap.entries) println("Keys:" + theMap.keys) println("Values:" + theMap.values) }
运行上述 Kotlin 程序时,将生成以下输出
Entries: [one=1, two=2, three=3, four=4] Keys:[one, two, three, four] Values:[1, 2, 3, 4]
遍历 Kotlin 地图
有多种方法可以遍历 Kotlin 地图。让我们逐一学习它们
使用 toString() 函数
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) println(theMap.toString()) }
运行上述 Kotlin 程序时,将生成以下输出
{one=1, two=2, three=3, four=4}
使用迭代器
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) val itr = theMap.keys.iterator() while (itr.hasNext()) { val key = itr.next() val value = theMap[key] println("${key}=$value") } }
运行上述 Kotlin 程序时,将生成以下输出
one=1 two=2 three=3 four=4
使用 For 循环
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) for ((k, v) in theMap) { println("$k = $v") } }
运行上述 Kotlin 程序时,将生成以下输出
one = 1 two = 2 three = 3 four = 4
使用 forEach
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) theMap.forEach { k, v -> println("Key = $k, Value = $v") } }
运行上述 Kotlin 程序时,将生成以下输出
Key = one, Value = 1 Key = two, Value = 2 Key = three, Value = 3 Key = four, Value = 4
Kotlin 地图的大小
我们可以使用 size 属性或 count() 方法获取地图中元素的总数
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) println("Size of the Map " + theMap.size) println("Size of the Map " + theMap.count()) }
运行上述 Kotlin 程序时,将生成以下输出
Size of the Map 4 Size of the Map 4
containsKey() 和 containsValue() 方法
containsKey() 检查地图是否包含键。containsValue() 检查地图是否包含值。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) if(theMap.containsKey("two")){ println(true) }else{ println(false) } if(theMap.containsValue("two")){ println(true) }else{ println(false) } }
运行上述 Kotlin 程序时,将生成以下输出
true false
isEmpty() 方法
如果集合为空(不包含任何元素),则 isEmpty() 方法返回 true,否则返回 false。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) if(theMap.isEmpty()){ println(true) }else{ println(false) } }
运行上述 Kotlin 程序时,将生成以下输出
false
get() 方法
get() 方法可用于获取与给定键对应的值。还支持简写 [key] 语法。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) println("The value for key two " + theMap.get("two")) println("The value for key two " + theMap["two"]) }
运行上述 Kotlin 程序时,将生成以下输出
The value for key two 2 The value for key two 2
还有一个函数 getValue(),其行为略有不同:如果地图中找不到键,它会抛出异常。
地图添加
我们可以使用 + 运算符将两个或多个地图添加到单个集合中。这会将第二个地图添加到第一个地图中,丢弃重复的元素。
如果两个地图中存在重复的键,则第二个地图的键将覆盖前一个地图的键。
示例
fun main() { val firstMap = mapOf("one" to 1, "two" to 2, "three" to 3) val secondMap = mapOf("one" to 10, "four" to 4) val resultMap = firstMap + secondMap println(resultMap) }
运行上述 Kotlin 程序时,将生成以下输出
{one=10, two=2, three=3, four=4}
地图减法
我们可以使用 - 运算符从地图中减去一个 列表。此操作将从地图中删除列表的所有键,并返回结果。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3) val theKeyList = listOf("one", "four") val resultMap = theMap - theKeyList println(resultMap) }
运行上述 Kotlin 程序时,将生成以下输出
{two=2, three=3}
从地图中删除条目
我们可以使用 remove() 方法从可变地图中删除元素,或者可以使用减号赋值 (-=) 运算符执行相同的操作
示例
fun main() { val theMap = mutableMapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) theMap.remove( "two") println(theMap) theMap -= listOf("three") println(theMap) }
运行上述 Kotlin 程序时,将生成以下输出
{one=1, three=3, four=4} {one=1, four=4}
排序地图元素
我们可以使用 toSortedMap() 方法按升序排序元素,或使用 sortedDescending() 方法按降序排序集合元素。
您还可以使用 sortedMapOf() 方法使用给定的键值创建排序地图。只需将此方法替换为 mapOf() 即可。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) var resultMap = theMap.toSortedMap() println(resultMap) }
运行上述 Kotlin 程序时,将生成以下输出
{four=4, one=1, three=3, two=2}
过滤地图元素
我们可以使用 filterKeys() 或 filterValues() 方法过滤掉条目。
我们还可以使用 filter() 方法过滤掉匹配键/值的元素
.示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) var resultMap = theMap.filterValues{ it > 2} println(resultMap) resultMap = theMap.filterKeys{ it == "two"} println(resultMap) resultMap = theMap.filter{ it.key == "two" || it.value == 4} println(resultMap) }
运行上述 Kotlin 程序时,将生成以下输出
{three=3, four=4} {two=2} {two=2, four=4}
映射地图元素
我们可以使用 map() 方法使用提供的函数映射所有元素:。
示例
fun main() { val theMap = mapOf("one" to 1, "two" to 2, "three" to 3) val resultMap = theMap.map{ (k, v) -> "Key is $k, Value is $v" } println(resultMap) }
运行上述 Kotlin 程序时,将生成以下输出
[Key is one, Value is 1, Key is two, Value is 2, Key is three, Value is 3]
Kotlin 可变地图
我们可以使用 mutableMapOf() 创建可变集合,稍后我们可以使用 put 在同一地图中添加更多元素,并且可以使用 remove() 方法从集合中删除元素。
示例
fun main() { val theMap = mutableMapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) theMap.put("four", 4) println(theMap) theMap["five"] = 5 println(theMap) theMap.remove("two") println(theMap) }
运行上述 Kotlin 程序时,将生成以下输出
{one=1, two=2, three=3, four=4} {one=1, two=2, three=3, four=4, five=5} {one=1, three=3, four=4, five=5}
测验时间 (面试和考试准备)
答案:A
解释
是的,我们可以添加或减去两个 Kotlin 地图并生成第三个集合。加号就像集合的 union()。
答案:A
解释
get() 方法用于获取与键对应的值。