Kotlin语言的map和set集合用法

kotlin set集合

1.kotlin语言的set创建和元素获取

	fun main() {
    //创建集合
    val set = setOf("zhangsan", "wangwu", "zhaoliu", "zhaoliu")
    println(set)//结果:[zhangsan, wangwu, zhaoliu] set集合不出现重复元素

    //获取元素(不推荐使用,会出现下表越界异常)
    println(set.elementAt(0))//结果:zhangsan

    //获取元素(推荐使用) elementAtOrElse 、elementAtOrNull
    println(set.elementAtOrElse(5) { "你越界了!" })//结果:你越界了!
    println(set.elementAtOrNull(5) ?: "你越界了!")//结果:你越界了!
}

2.kotlin语言的可变set集合

fun main() {
    val set = mutableSetOf("zhangsan","lisi")
    set += "zhaoliu"
    set -= "zhangsan"
    println(set)//结果:[lisi, zhaoliu]
}

3.kotlin语言的集合转换与快捷函数去重

fun main() {
    //1.创建list集合
    val list = mutableListOf("zhangsan", "lisi", "lisi")

    //转set去重
    println(list.toSet())//结果:[zhangsan, lisi]

    //转set再转list
    println(list.toSet().toList())//结果:[zhangsan, lisi]

    //快捷函数去重
    println(list.distinct())//结果:[zhangsan, lisi]
}

kotlin语言map

1.kotlin语言map集合的创建与元素的获取

fun main() {
    /*创建map*/
    //方式1
    val map1 = mapOf("lisi" to 34, "zhagnsan" to 55)
    //方式2
    val map2 = mapOf(Pair("lisi", 22), Pair("zhangsan", 55))

    /*获取元素*/
    //方式1
    println(map1["lisi"])//结果:34
    println(map1["lisisdfsf"])//结果:null(没找到对应的value)

    //方式2
    println(map1.getOrDefault("lisi", -1))//结果:34
    println(map1.getOrDefault("lisisdfsf", -1))//结果:-1(没找到对应的value)

    //方式3
    println(map1.getOrElse("lisisdfsf") { -1 })//结果:-1(没找到对应的value)

    //方式4(不建议使用)
    println(map1.getValue("lisisdfsf"))//结果:会崩溃(没找到对应的value)Key lisisdfsf is missing in the map.

}

2.kotlin语言map的遍历

fun main() {
    val map = mapOf("lisi" to 34, "zhagnsan" to 55)

    //方式1
    map.forEach {
        println("${it.key}:${it.value}")//结果:lisi:34  zhagnsan:55
    }

    //方式2
    map.forEach { key, value ->
        println("${key}:${value}")//结果:lisi:34  zhagnsan:55
    }

    //方式3
    map.forEach { (k,v) ->
        println("${k}:${v}")//结果:lisi:34  zhagnsan:55
    }

    //方式4(不推荐)
    for (item in map) {
        println("${item.key}:${item.value}")//结果:lisi:34  zhagnsan:55
    }
}

3.kotlin可变map

fun main() {
    val map = mutableMapOf("zhangsan" to 2,"lisi" to 44)
    map += "zhouliu" to 90
    println(map)//结果:{zhangsan=2, lisi=44, zhouliu=90}

    //获取元素value
    println(map.getOrPut("lisi"){55})//结果:44
    println(map.getOrPut("lisisdfdsf"){55})//结果:55 (找不到就把55存进去)
    println(map.getOrPut("lisisdfdsf"){999})//结果:55 (上面存进去的55)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值