Kotlin 集合
Kotlin标准库提供了一整套用于管理集合的工具
集合中通常包含相同类型的一些(数目也可以为零)对象。集合中的对象成为元素或条目
集合类型
- List->有序集合,通过索引(反映元素位置的整数)访问元素
- Set->唯一元素的集合,储存无重复的对象,对于Set来说元素的顺序并不重要
- 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())