【第四阶段】kotlin语言的Map集合学习

1.Map集合的创建

package Kotlin.Stage4

fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)  //java代表键 1代表值
    val map2= mapOf(Pair("java",1),Pair("kotlin",2))//和上面写法等价
}

2.读取map的值

  • 方式1:使用[] 如果没有键不存在则返回null
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1 使用[] 如果不存在则返回null
    println("方式1:java的值:"+map["java"]+"如果不存在返回null:"+map["c++"])
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第1张图片

  • 方式2:使用getOrDefault 如果不存在返回默认值
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1 使用[] 如果不存在则返回null
    println("方式1:java的值:"+map["java"]+"如果不存在返回null:"+map["c++"])
    println()
    //方式2 使用getOrDefault   如果不存在返回默认值
    println(map.getOrDefault("java",-1))
    println(map.getOrDefault("c++",-1))
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第2张图片

  • 方式3:使用getOrElse 如果不存在返回指定值
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1 使用[] 如果不存在则返回null
    println("方式1:java的值:"+map["java"]+"如果不存在返回null:"+map["c++"])
    println()
    //方式2 使用getOrDefault   如果不存在返回默认值
    println(map.getOrDefault("java",-1))
    println(map.getOrDefault("c++",-1))
    println()
    //方式3:使用getOrElse  如果不存在返回指定值
    println(map.getOrElse("java"){-1})
    println(map.getOrElse("c++"){-1})
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第3张图片

  • 方式4:和java一样,其中使用get 如果不存在则返回null;使用getValue,如果不存在则会崩溃,不建议使用。
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1 使用[] 如果不存在则返回null
    println("方式1:java的值:"+map["java"]+"如果不存在返回null:"+map["c++"])
    println()
    //方式2 使用getOrDefault   如果不存在返回默认值
    println(map.getOrDefault("java",-1))
    println(map.getOrDefault("c++",-1))
    println()
    //方式3:使用getOrElse  如果不存在返回指定值
    println(map.getOrElse("java"){-1})
    println(map.getOrElse("c++"){-1})
    println()
    //方式4:和java一样
    println(map.get("java"))//等价于[]方式
    println(map.get("c++"))
    println(map.getValue("java"))
    println(map.getValue("c++")) //会崩溃。不建议使用
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第4张图片
3.map的遍历

  • 方式1:foreach it
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1;foreach  it
    map.forEach(){
        //it代表每一个(k,v)
        print(" key${it.key},value${it.value}")
    }
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第5张图片

  • 方式2 forEach()不使用默认it
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1;foreach  it
    map.forEach(){
        //it代表每一个(k,v)
        println(" key${it.key},value${it.value}")
    }
    println()
    //方式2:不使用默认it
    map.forEach(){key:String,value:Int->
        //覆盖默认的it
        println(" key$key,value$value")
    }
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第6张图片

  • 方式3 foreach() 输入带括号
fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1;foreach  it
    map.forEach(){
        //it代表每一个(k,v)
        println(" key${it.key},value${it.value}")
    }
    println()
    //方式2:不使用默认it
    map.forEach(){key:String,value:Int->
        //覆盖默认的it
        println(" key$key,value$value")
    }
    println()
    //方式3
    map.forEach(){(k,v)->
        println(" key$k,value$v")
    }
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第7张图片

  • 方式4 for循环
package Kotlin.Stage4

fun main() {
    val map= mapOf("java" to 1,"kotlin" to 2)
    //方式1;foreach  it
    map.forEach(){
        //it代表每一个(k,v)
        println(" key${it.key},value${it.value}")
    }
    println()
    //方式2:不使用默认it
    map.forEach(){key:String,value:Int->
        //覆盖默认的it
        println(" key$key,value$value")
    }
    println()
    //方式3
    map.forEach(){(k,v)->
        println(" key$k,value$v")
    }
    println()
    //方式4
    for (item in map){
        //item代表每一个(k,v)
        println(" key${item.key},value${item.value}")
    }
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第8张图片
4.map可变集合

  • 可变map的定义和操作
fun main() {
    val map= mutableMapOf("AAA" to 1,"BBB" to 2)
    //可变集合操作
    map+="CCC" to (3)
    map+="DDD" to 4
    map-="DDD"
    map["EEE"]=5
    map.put("FFF",6)
    println(map["EEE"])//put和[]等价
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第9张图片

  • getOrPut
fun main() {
    val map= mutableMapOf("AAA" to 1,"BBB" to 2)
    //可变集合操作
    map+="CCC" to (3)
    map+="DDD" to 4
    map-="DDD"
    map["EEE"]=5
    map.put("FFF",6)
    println(map["EEE"])//put和[]等价

    println()
    //  getOrPut
    //键没有的情况,会将他先添加进集合中。
    map.getOrPut("GGG"){8}
    println(map["GGG"])
    //键有的情况,会读取存在的值,并且默认值失效
    map.getOrPut("AAA"){9}
    println(map["AAA"])
}

执行结果
【第四阶段】kotlin语言的Map集合学习_第10张图片

你可能感兴趣的:(Kotlin,kotlin,学习,python)