Kotlin 标准库学习-集合基础

168 阅读2分钟

Kotlin 集合

Kotlin标准库提供了一整套用于管理集合的工具

集合中通常包含相同类型的一些(数目也可以为零)对象。集合中的对象成为元素或条目

集合类型

  1. List->有序集合,通过索引(反映元素位置的整数)访问元素
  2. Set->唯一元素的集合,储存无重复的对象,对于Set来说元素的顺序并不重要
  3. Map(字典)->一组键值对,键是唯一的,每个键映射一个值(可重复)

对于每一种集合类型都有相对应的只读集合、可变集合,顾名思义就是可以操作数据跟不可以的区别

List

List<T> 只读列表

//只读列表(List<T>)
val list = listOf<String>("list","set","map")

List<T>以指定顺序储存元素,并以 [0,List.size)为索引,List.get("索引")List["索引"]获取元素,List.indexOf("元素")获取索引

如果两个List拥有相同的结构,相同元素,那么他们是相同的

MutableList<T> 可读写列表

//可读写列表(MutableList<T>)
var mutableList = mutableListOf("list","set","map")
mutableList.add("mutablelist")
//在指定位置插入元素
mutableList.add(1,"mutablelist")
mutableList.remove("list")
//删除指定位置元素
mutableList.removeAt(1)

Set

Set 储存唯一的元素(就连null也是唯一的)

Set<T>

//只读Set
val set= setOf<String>("list","set","map")
println("第一位${set.first()} 最后一位${set.last()}")

MutableSet<T>

//可读写Set
var mutableList = mutableListOf("list","set","map")

Map

Map储存键值对:键的值是唯一的,不同的键可以跟相同的值相对应 Map不论顺序,拥有相同的键值,两个Map相等

Map<K,V>

//只读Map
val maps= mapOf("1" to "list","2" to "set","3" to "map")
//拿到第一个值
println(maps["1"])
//打印所有值
println(maps.keys)
//打印所有键
println(maps.values)

可以看见map创建时使用了标准函数库中mapOf()函数中有缀函数to,看一下官方解释

注意, to 符号创建了⼀个短时存活的 Pair 对象,因此建议仅在性能不重要时才使⽤ 它。 为避免过多的内存使⽤,请使⽤其他⽅法。例如,可以创建可写 Map 并使⽤写⼊ 操作填充它。 apply() 函数可以帮助保持初始化流畅。

val numbersMap = mutableMapOf().apply { this["one"] = "1"; this["two"] = "2"}
//buildList,buildSet,buildMap
val maps = buildMap {
    put("1","list")
    put("2","set")
    put("3","map")
}

MutableMap<K,V>

//可读写Map
val maps= mutableMapOf("1" to "list","2" to "set","3" to "map")
maps.put("4","mutableMap")
maps["4"]

emptyList(),emptySet(),emptyMap() 空集合

val emptylist = emptyList<String>()

集合复制操作

val lists= listOf("list","set","map")
//复制List列表
val copylists = lists.toList()
//[list, set, map]
println(copylists.toString())

还有toSet(),toMap(),toMatableList()等等、

//进行List转换Set
val lists= listOf("list","set","map")
//转换Set列表
val copySet = lists.toSet()
//[list, set, map]
println(copySet.toString())