Kotlin集合
List:是一个有序列表,可通过索引(下标)访问元素.元素可以在list中出现多次、元素可重复
Set:是元素唯一集合.一版来说set中元素的顺序并不重要、无序集合
Map:(字典)是一组键值对.键是唯一的,每个键都刚好映射到一个值,值可以重复.
//列表的创建方式 ---可变列表
val arrayString = mutableListOf<String>()
arrayString.add("1")
arrayString.add("2")
arrayString.add(2,"2")//指定位置插入元素
val arrayString2 = mutableListOf<String>("1","2","3")
arrayString2.add("4")
//列表的创建方式 ---不可变列表
//必须指定元素类型,必须指定初始化数据
val arrayInt = listOf<Int>(1,2,3)
//字典集合创建方式---可变
//字典是一组键值对 键是唯一的 每个键都刚好映射到一个值 值可以重复
val mapString = arrayMapOf<String,String>()
val arrayMap = mutableMapOf<String,String>() //推荐
arrayMap["name"] = "ding"
arrayMap["sex"] = "nan"
arrayMap["sex"] = "nv" //此时会覆盖掉上面的记录 因为键是唯一的 重复添加会覆盖掉之前的记录
//map字典的创建 ---- 使用Pair指定集合中初始化的元素
val arrayMap2 = mutableMapOf<String,String>(Pair("key","value"))
//字典集合创建方式---不可变
val arrayMap3 = mapOf<String,String>(Pair("key","value"), Pair("name","ding"))
val arrayMap4 = mapOf<String,String>() //空字典 无法动态添加
//Set集合创建方式---可变集合 元素唯一
val arraySet = mutableSetOf<Int>()
arraySet.add(100)
arraySet.add(200)
arraySet.add(300)
arraySet.add(300)//添加不进去
val arraySet2 = mutableSetOf<Int>(1,2,3)
arraySet2.add(2)//添加不进去 因为元素重复了
//Set集合创建方式---不可变集合 元素唯一
val arraySet3 = setOf<Int>(1,2,3)
//常见方法 同样适用于set map list(可变情况下)
val arrayString3 = mutableListOf<String>("1","2","3","4","5","2")
println("isEmpty: ${arrayString3.isEmpty()}")
println("contains: ${arrayString3.contains("6")}")//集合中是否包含6元素
println("get: ${arrayString3.get(0)}")//根据索引获取元素
println("indexOf: ${arrayString3.indexOf("2")}")//判断元素在集合中下标位置(第一个2停止) 下标为1 没有返回-1
println("lastIndexOf: ${arrayString3.lastIndexOf("2")}")//判断元素在集合中下标位置(最后一个2停止) 下标为5 没有返回-1
//迭代器
val iterator = arrayString3.iterator()
iterator.forEach {
println("it:${it}")// "1","2","3","4","5","2"
}
arrayString3.clear() //清除集合
arrayString3.set(0,"100")//修改下标对应元素
arrayString3[0] = "100"//修改下标对应元素 会报错 以为上面清除集合了 size为0不能修改
arrayString3.add(1,"7")//指定位置插入元素
arrayString3.removeAt(0)//移除指定位置元素
val numbers = mutableListOf<Int>(1,2,3,4)
numbers.reverse()//集合反转
numbers.forEach {
println("it:${it}")
}
numbers.shuffle()//随机排列元素
numbers.forEach {
println("it:${it}")
}
numbers.sort()//从小到大排序
numbers.forEach {
println("it:${it}")
}
numbers.sortDescending()//从大到小排序
numbers.forEach {
println("it:${it}")
}