
容器是用于存放数据的载体。容器分为数据、集合。
Kotlin 集合
各种集合对于解决问题都具有重要意义,并且经常用到。与数组不同的是可变集合的大小可以动态改变。
- List 集合:是一个有序列表,可通过索引访问元素。元素可以在 list 中出现多次、元素可重复。
- Set 集合:是元素唯一的集合。一组无重复的对象。
- Map 集合:是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复。
创建方式
1. List 集合创建
fun main() {
// 可变列表,必须指定元素类型
val list = mutableListOf<String>()
list.add("android")
list.add("ios")
list.add("kotlin")
val list2 = mutableListOf("java","c#","spring")
list2.add("c++")
// 不可变列表,必须指定元素类型;必须指定初始化数据元素
val list3 = listOf(1,2,3)
}
2. Map 集合创建
fun main() {
// 可变 map
val map = mutableMapOf<Int,String>()
map[1] = "android"
map[2] = "ios"
map[3] = "android"
// 使用 Pair 指定集合中初始化的元素
val map2 = mutableMapOf(Pair(1,"A"), Pair(2,"B"))
// 不可变 map,元素使用 Pair 包装;必须指定初始元素
val map3 = mapOf(Pair(1,"kotlin"))
}
3. Set 集合创建
fun main() {
// 可变 Set,元素唯一
val set = mutableSetOf<String>()
set.add("android")
set.add("ios")
set.add("windows")
set.add("windows") // 这个是添加不进去的噢
for (item in set) {
println(item)
}
val set2 = mutableSetOf("abc","def","ghk")
set2.add("abc") // 这个是添加不进去的噢
// 不可变 Set,必须指定初始元素
val map3 = setOf<Int>(1, 2, 3)
}
}
集合的操作

集合的排序
1. 翻转
fun main(
val list = mutableListOf(1,3,5,7,9)
list.reverse()
list.forEach {
print("$it ")
}
}
2. 排序,从小到大
fun main() {
val list = mutableListOf(2,1,3,5,7,5)
list.sort()
list.forEach {
print("$it ")
}
}
3. 排序,从大到小
fun main() {
val list = mutableListOf(2,1,3,5,7,5)
list.sortDescending()
list.forEach {
print("$it ")
}
}
网友评论