kotlin学习集合6(Array、Set、Map)

fun main(args: Array<String>) {
    /**
     * 集合,
     *      集合根据特性分:
     *      1、有序可重复 -Array
     *      2、无序不重复 -Set
     *      3、无序可重复 -Map,有唯一的键(key)
     */
   /**-----------------Array--------------------*/
    // 数组在kotlin写法:1、Array<类型>;2、arrayOf(元素1,元素2,...,元素n);数组类型不可变
    var citysOne = arrayOf("1","2","3","4","5","2")//此时,数组类型不可变,大小不可变
    var citys = Array<String>(3,{"临时占用名字"})//这里相当于占位,附一个默认值
    citys.set(1,"北京")
    for (city in citys) {
        println(city)
    }
    //创建1到10的数组
    val numbers = Array(10,{i -> i+1 })
    println("数组第三个元素:${numbers[2]}")
    println("数组第四个元素:${numbers.component4()}")//获取前五个元素的快捷方法:Array.component1到5

    citysOne.distinct(); //数组去重复
    citysOne.sliceArray(1..3)//切割数组

    //mutableList:这种数组大小可变,类型不可变
    var citysTwo = mutableListOf("1","2","3","4","5","2")
    citysTwo.add("7")//加到最后面
    citysTwo.add(0,"0")//加到第一个
    citysTwo.addAll(citysOne)//加一个集合

    citysTwo.remove("0")//移除一个元素
    citysTwo.removeAt(0)//移除第一个元素
    //TODO 还有很多种方法

    /**-----------------SET--------------------*/
    //Set写法:Set<类型>  或 setOf(元素1,...元素n);大小固定,元素类型不可变
val setOne = setOf<String>("1","2","3","4")
 val setTwo = setOf<String>("1","5","8")
 val setThree = setOf<String>("1","4")
 println("是否包含某个元素: "+setOne.contains("1"))
 println("是否包含某个集合 :"+ setOne.containsAll(setThree))
 println("转化为数组 :"+ setOne.toTypedArray())
 println("交集:" + setOne.intersect(setTwo))
 println("差集:" + setOne.subtract(setTwo))
 println("并集:" + setOne.union(setTwo))//结果默认去重复
 println("补集:" + setOne.minus(setTwo))
 //MutableSet<类型>  或  mutableSetOf(元素1,...元素n);大小可变,类型不可变
 /**
  * 集合相关方法
  */
 val  mutableSet = setOne.toMutableSet()
 //添加元素:add方法;添加集合:addAll方法
 //移除元素:remove方法;移除另一个集合:removeAll方法
 mutableSet.add("11")
 mutableSet.addAll(setTwo)
 mutableSet.remove("1")
 mutableSet.removeAll(setTwo)

 /**-----------------Map--------------------*/
 /**
  * Map集合类型:无序可重复
  * Map写法:mapOf<key,value>(Pair(key,"value),...)
  */
 val mapOne = mapOf<String,String>(Pair("keyOne","valueOne"), Pair("keyTwo","valueTwo"))
//相关API
 println("map里面元素个数 :"+mapOne.size)
 println("map是否为空 :" + mapOne.isEmpty())
 println("根据键获取value :" + mapOne.get("keyOne"))
 println("根据键获取value :" + mapOne.getOrDefault("keyOne","不存在keyOne,这里显示默认的"))
 //获取所有的key
 for (key in mapOne.keys){
  println("集合的所有key:"+key)
 }
 for (value in mapOne.values){
  println("集合所有的value :"+value)
 }

 //上面mapof初始化的MAP是不可改变的,如果需要改变,可以通过以下方法
 val mapTwo = mapOne.toMutableMap()
 mapTwo["keyOne"] = "更新keyValue"
 mapTwo["keyThree"] = "增加的value"
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值