kotlin : map


//参考: https://www.jianshu.com/p/da5cc9072f1e

fun main() {

//    create()

    iterator()

}

/**
 * 遍历
 */
private fun iterator() {
    //创建不可变集合,返回值是Map
    val map = mapOf("Java" to 86, "Kotlin" to 92, "Go" to 76)
    //遍历Map的key-value对,entries 元素返回key-value对组成的Set
    for (en in map.entries) {
        println("${en.key}->${en.value}")
    }
    println("-------------------------------")
    map.entries.forEach { en ->
        println("${en.key}->${en.value}")
    }
    println("-------------------------------")
    //先遍历Map的key,再通过key获取value
    for (key in map.keys) {
        println("${key}->${map[key]}")
    }
    println("-------------------------------")
    //直接用for-in循环遍历Map
    for ((key, value) in map) {
        println("${key}->${value}")
    }
    println("-------------------------------")
    //用Lambda表达式遍历Map
    map.forEach { println("${it.key}->${it.value}") }
}

/**
 * 创建
 */
private fun create() {
    //创建不可变集合,返回值是Map
    val map = mapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(map)//按添加顺序排列
    println("mapOf的返回对象的实际类型:${map.javaClass}")//LinkedHashMap

    //创建可变集合
    //可变的Map为操作key-value对提供了如下方法:
    //    clear():清空所有的key-value对。
    //    put(key:K,value:V):放入key-value对。如果原来已有key,value将被覆盖。
    //    putAll(form:Map<out K,V>):批量放入多个key-value对。
    //    remove(key:K):删除key-value对。
    val mutableMap = mutableMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(mutableMap)//按添加顺序排列
    println("mutableMapOf的返回对象的实际类型:${mutableMap.javaClass}")//LinkedHashMap
   
    //创建HashMap集合
    val hashMap = hashMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(hashMap)//不保证排列顺序
    println("hashMapOf的返回对象的实际类型:${hashMap.javaClass}")//HashMap
  
    //创建LinkedHashMap
    val linkedHashMap = linkedMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(linkedHashMap)//按添加顺序排列
    println("linkedMapOf的返回对象的实际类型:${linkedHashMap.javaClass}")//LinkedHashMap
   
    //创建TreeMap集合
    val treeMap = sortedMapOf("Java" to 86, "Kotlin" to 92, "Go" to 78)
    println(treeMap)//按key由小到大排列
    println("sortedMapOf的返回对象的实际类型:${treeMap.javaClass}")//TreeMap
}
### 回答1: Kotlin 中可以使用 for 循环和 forEach 函数来遍历 Map。 For 循环示例: ``` val map = mapOf("a" to 1, "b" to 2, "c" to 3) for ((key, value) in map) { println("$key -> $value") } ``` forEach 函数示例: ``` val map = mapOf("a" to 1, "b" to 2, "c" to 3) map.forEach { (key, value) -> println("$key -> $value") } ``` 这两种方法都可以用来遍历 Map,不同点在于 forEach 函数更加简洁,但是 for 循环可以更加灵活的控制遍历的流程。 ### 回答2: 在Kotlin中,遍历Map可以使用多种方式。以下是常见的几种方式: 1. 使用for循环遍历Map的键值对: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") for ((key, value) in map) { println("Key: $key, Value: $value") } ``` 2. 使用forEach()函数遍历Map的键值对: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") map.forEach { (key, value) -> println("Key: $key, Value: $value") } ``` 3. 使用for循环遍历Map的键或值: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") for (key in map.keys) { println("Key: $key") } for (value in map.values) { println("Value: $value") } ``` 4. 使用迭代器遍历Map的键值对: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") val iterator = map.iterator() while (iterator.hasNext()) { val entry = iterator.next() println("Key: ${entry.key}, Value: ${entry.value}") } ``` 以上是几种常见的遍历Map的方式。根据具体的需求和情况,选择适合的方式进行遍历。 ### 回答3: 在Kotlin中,我们可以使用不同的方法来遍历Map。 一种常用的方法是使用`for`循环来迭代Map的键值对。例如: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") for ((key, value) in map) { println("Key: $key, Value: $value") } ``` 这会依次打印出每个键值对的键和值。 另一种常用的方法是使用`forEach`函数来遍历Map。例如: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") map.forEach { (key, value) -> println("Key: $key, Value: $value") } ``` 这个方法会对Map中的每个键值对应用给定的操作,并在其中提供键值对作为参数。 如果只需要遍历Map的键,我们可以使用`keys`属性。例如: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") for (key in map.keys) { println("Key: $key") } ``` 这会依次打印出Map中的每个键。 如果只需要遍历Map的值,我们可以使用`values`属性。例如: ```kotlin val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to "value3") for (value in map.values) { println("Value: $value") } ``` 这会依次打印出Map中的每个值。 这些是在Kotlin中遍历Map的一些常用方法。根据需要选择最适合你的方法来处理Map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值