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"
}
kotlin学习集合6(Array、Set、Map)
最新推荐文章于 2024-08-21 02:24:58 发布