【第四阶段】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++"])
}

执行结果
在这里插入图片描述

  • 方式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))
}

执行结果
在这里插入图片描述

  • 方式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})
}

执行结果
在这里插入图片描述

  • 方式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++")) //会崩溃。不建议使用
}

执行结果
在这里插入图片描述
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}")
    }
}

执行结果
在这里插入图片描述

  • 方式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")
    }
}

执行结果
在这里插入图片描述

  • 方式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")
    }
}

执行结果
在这里插入图片描述

  • 方式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}")
    }
}

执行结果
在这里插入图片描述
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和[]等价
}

执行结果
在这里插入图片描述

  • 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"])
}

执行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值