kotlin学习(集合)

list的创建和元素取值

list不可变,不可以add和remove

        //创建list
        val list = listOf("zhangsan","lisi","wangwu")
        //list取值
        list[0]
        //安全索引取值函数,第一个参数为索引,第二个参数为lambda表达式,如果存在就返回值,
        // 不存在就可以返回lambda表达式的自定义任何语句
        //getOrElse 拿到索引进行返回
        println(list.getOrElse(3){
            "$it out of existence"
        })
        //getOrNull 如果没有的话会返回null
        println(list.getOrNull(3) ?: "不存在")

可变列表

mutableListOf,可以使用add和remove

可变与不可变可以互相转换

        listOf("zhangsan","lisi","wangwu").toMutableList()
        mutableListOf("zhangsan","lisi","wangwu").toList()

mutator函数

运算符重载(本身是普通的功能,通过重载后有了特定的功能)

+=:可以给mutablelList添加元素,等同于add

-=:  给mutableList 删除元素 ,等同于remove

.removeIf();基于lambda表达式制定条件删除的元素

集合遍历

       //for
        for (s in list) {}
        //forEach
        list.forEach {}
        //有index
        list.forEachIndexed { index, s ->  }

解构语法

在给多个对象同时赋值时,如果不想给哪个元素赋值,就用下划线命名

set创建与元素获取

        // 创建Set setOf
        val set = setOf("zhangsan","lisi","wangwu","lisi")
        // set取值 elementAt
        set.elementAt(2)
        // 安全取值
        set.elementAtOrElse(2){
        }
        set.elementAtOrNull(2)

可变set

 val mutableSetOf = mutableSetOf("zhangsan","lisi","wangwu","lisi")

集合的转换

//list转成set去掉重复的元素
        //第一种
        val list1 = listOf("zhangsan","lisi","wangwu","lisi")
            .toSet()
            .toList()
        //第二种
        val list2 = listOf("zhangsan","lisi","wangwu","lisi").distinct()

数组

//数组的创建
        byteArrayOf()
        shortArrayOf()
        val intArray = intArrayOf(10,20,30)
        longArrayOf()
        floatArrayOf()
        doubleArrayOf()
        arrayOf(10,20,30)
        //集合,数组互相转换
        listOf(10,20,30).toIntArray().toList()

Map集合

//map的创建
        /* to 是一个省略了点号和参数的特殊函数,to函数
        *将它左边和右边的值转化成一对Pair
        * */
        val map = mapOf("name" to "zhangsan","age" to 12)
        mapOf(Pair("name","zhangsan"), Pair("age",18))
        //读取map的值
        map["name"]
        map.getValue("name")
        map.getOrElse("name"){
            "out of existence"
        }
        map.getOrDefault("name","无此人")

map的遍历

//map的创建
        /* to 是一个省略了点号和参数的特殊函数,to函数
        *将它左边和右边的值转化成一对Pair
        * */
        val map = mapOf("name" to "zhangsan","age" to 12)
        mapOf(Pair("name","zhangsan"), Pair("age",18))
        //读取map的值
        map["name"]
        map.getValue("name")
        map.getOrElse("name"){
            "out of existence"
        }
        map.getOrDefault("name","无此人")
        map.forEach{
            it.key
            it.value
        }
        
        map.forEach { (t, u) -> 
            t
            u
        }

可变的map

val mutableMap = mutableMapOf(Pair("name","zhangsan"), Pair("age",18))
        mutableMap += "sex" to "男"
        mutableMap.put("sex" , "男")

        //如果get不到就put进去
        mutableMap.getOrPut("sex"){ "男"}
        //get如果为null就设置一个默认值
        mutableMap.getOrDefault("sex" , "男")
        mutableMap.getOrElse("sex" ){"男"}

mutableMap

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值