集合
List集合
只读和可变
/**
* List分为只读和可变列表
*/
fun main() {
val list = listOf("jack", "jason", "jacky")
println(list[2])
//安全索引取值函数,如果下标不存在的话,则可用来代替异常
val str1 = list.getOrElse(4) {
"下标超出"
}
println(str1)
//另一个安全索引取值函数,如果下标不存在的话,则返回null,不会抛出异常
val str2 = list.getOrNull(4);
println(str2)
val str3 = list.getOrNull(4) ?: "unKnown";
println(str3)
val mutableList = mutableListOf("jack", "jason", "jacky")//可变列表
mutableList.add("jimmy")
mutableList.remove("jack")
println(mutableList)
listOf("jack", "jason", "jacky").toMutableList()//只读列表可以变成可变列表
mutableListOf("jack", "jason", "jacky").toList()//可变列表可以变成只读列表
}
可变运算
val mutableList = mutableListOf("jack", "jacky", "jackson")
mutableList += "jimmy"//可变列表直接运算
mutableList -= "jack"
println(mutableList)
mutableList.removeIf { it.contains("jacky") }//基于lambda表达式指定条件删除元素
println(mutableList)
集合遍历
val list = listOf("jack", "jacky", "jackson")
for (i in list) {
println(i)
}
list.forEach {
println(it)
}
list.forEachIndexed { index, st ->
println("${index},$st")
}
解构
//通过_过滤不想要的元素
val list_list = listOf("jack", "jacky", "jackson")
// val(origin,dest,proxy) = list_list;
val (origin, _, proxy) = list_list
println("$origin-$proxy")
Set集合
val set = setOf("Kotlin", "Java", "Scala")//只读
val ele = set.elementAt(2);
println(ele)
println(set.elementAtOrElse(3) { "unknow" })
println(set.elementAtOrNull(3))
val mutableSet = mutableSetOf("Kotlin", "Java", "Scala")//可变
mutableSet += "Groovy"
println(mutableSet)
//把List转换成Set,setOf本身去重
val list = listOf("Jason", "Jack", "Jacky", "Jacky")
println(list.toSet())//转换成Set去重了
println(list.toSet().toList());
println(list.distinct())//快捷函数直接list去重
Array数组
val intArray = intArrayOf(3, 2, 1);
for (i in intArray) {
println(i)
}
val doubleArray = doubleArrayOf(3.2, 2.6, 1.9);
for (d in doubleArray) {
println(d)
}
Map集合
//to看上去像关键字,它是省略了点号和参数的特殊函数,to函数将它左边和右边的值转化成一对pair
val map = mapOf("Jack" to 20, "Jason" to 18, "Jacky" to 30)
println(map)
println(mapOf(Pair("Jack", 20), Pair("Jason", 18)))
//读取键值对的值
//[]取值运算符,读取键对应的值,如果键不存在,就返回null
//getValue,读取键对应的值,如果键不存在,就返回null
//getOrElse,读取键对应的值,或者使用匿名函数返回默认值
//getOrDefault,读取键对应的值,或者返回默认值
println(map["Jack"])
println(map.getValue("Jack"))
println(map.getOrElse("Rose") { 2000 })
println(map.getOrDefault("roo", 100))
//遍历
map.forEach { (key, value) ->
println("$key - $value")
}
val mutableMap = mutableMapOf("Jack" to 20, "Jason" to 18, "Jacky" to 30)
mutableMap += "Jimmy" to 1000
mutableMap.put("rose", 50)
//getOrPut键值不存在,就添加并返回结果,否则就返回已有的键值
println(mutableMap.getOrPut("rose") { 2660 })
println(mutableMap.getOrPut("zhzh") { 1660 })
println(mutableMap)
文章来源地址https://www.toymoban.com/news/detail-511824.html
文章来源:https://www.toymoban.com/news/detail-511824.html
到了这里,关于学习Kotlin~集合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!