1.声明和创建Map集合
Kotlin提供了如下函数来创建Map集合:
1.MapOf():该函数返回不可变的Map集合。该函数可接受0个或多个key-value对,这些key-value对 作为Map的元素
2.mutableMapOf():该函数返回可变的MutableMap集合
3.hashMapOf() :该函数返回可变的HashMap集合。
4.linkedMapOf():该函数返回可变的LinkedHashMap集合
5.sortedMapOf():该函数返回可变的TreeMap集合。
//创建不可变集合,返回值是Map
var map = mapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
println(map)//按添加顺序排列
println("mapOf的返回对象的实际类型:${map.javaClass}")
//创建可变集合
var mutableMap = mutableMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
println(mutableMap)//按添加顺序排列
println("mutableMapOf的返回对象的实际类型:${mutableMap.javaClass}")
//创建HashMap集合
var hashMap = hashMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
println(hashMap)//不保证排列顺序
println("hashMapOf的返回对象的实际类型:${hashMap.javaClass}")
//创建LinkedHashMap
var linkedHashMap = linkedMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
println(linkedHashMap)//按添加顺序排列
println("linkedMapOf的返回对象的实际类型:${linkedHashMap.javaClass}")
//创建TreeMap集合
var treeMap = sortedMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
println(treeMap)//按key由小到大排列
println("sortedMapOf的返回对象的实际类型:${treeMap.javaClass}")
输出结果:
{Java=86, Kotlin=92, Go=78}
mapOf的返回对象的实际类型:class java.util.LinkedHashMap
{Java=86, Kotlin=92, Go=78}
mutableMapOf的返回对象的实际类型:class java.util.LinkedHashMap
{Go=78, Java=86, Kotlin=92}
hashMapOf的返回对象的实际类型:class java.util.HashMap
{Java=86, Kotlin=92, Go=78}
linkedMapOf的返回对象的实际类型:class java.util.LinkedHashMap
{Go=78, Java=86, Kotlin=92}
sortedMapOf的返回对象的实际类型:class java.util.TreeMap
2.遍历Map
//创建不可变集合,返回值是Map
var map = mapOf("Java" to 86, "Kotlin" to 92, "Go" to 76)
//遍历Map的key-value对,entris元素返回key-value对组成的Set
for (en in map.entries) {
println("${en.key}->${en.value}")
}
//先遍历Map的key,再通过key获取value
for (key in map.keys) {
println("${key}->${map[key]}")
}
//直接用for-in循环遍历Map
for ((key, value) in map) {
println("${key}->${value}")
}
//用Lambda表达式遍历Map
map.forEach({ println("${it.key}->${it.value}") })
网友评论