可变列表:
在Kotlin中,支持内容修改的列表叫可变列表,要创建可变列表,可以使用mutableListOf函数。List还支持使用toList和toMutableList函数动态实现只读列表和可变列表的相互转换。
fun main() {
val list = mutableListOf("Jason", "Jack", "Jacky")
list.add("Jimmy")
list .remove ("Jack")
println(list)
listOf("Jason", "Jack", "Jacky").toMutableList()
mutableListOf("Jason", "Jack", "Jacky").toList()
}
mutator函数:
能修改可变列表的函数有个统一的名字:mutator函数
添加元素运算符与删除元素运算符 (还记得C++中的运算符重载吗?)
基于lambda表达式指定的条件删除元素
fun main() {
val list = mutableListOf("Jason", "Jack", "Jacky")
// list.add("Jimmy")
// list .remove ("Jack")
listOf("Jason", "Jack", "Jacky").toMutableList()
mutableListOf("Jason", "Jack", "Jacky").toList()
list += "Jimmy"
list -= "Jason"
list.removeIf {
it.contains("Jack")
}
println(list)
}
集合遍历:
fun main() {
val list = mutableListOf("Jason", "Jack", "Jacky")
for (s in list) {
println(s)
}
list.forEach {
println(it)
}
list.forEachIndexed { index, s ->
println("$index, $s")
}
}
解构:
跳过、省略、有不想赋值的地方可以使用_(下划线)
val (orlgin : String , _ : String ,proxy : String ) = list
Set创建与元素获取:(set不能有重复元素)
通过setOf创建set集合,使用elementAt函数读取集合中的元素。
fun main() {
val set = setOf("Jason", "Jack", "Jacky","Jack")
println(set.elementAt(2))
}
通过mutableSetOf创建可变的set集合
val mutableSetOf = mutableSetOf("Jason", "Jack", "Jacky", "Jack")
mutableSetOf+="Jimmy"
集合转换:
List转Set:
val list = listOf("Jason", "Jack", "Jacky", "Jack").toSet().toList()
println(list)
println(listOf("Jason", "Jack", "Jacky", "Jack").distinct())
数组类型:
fun main() {
val inArrayOf = intArrayOf(10, 20, 30)
listOf(10,20,30).toIntArray()
val arrayOf = arrayOf(File("xxx"), File("yyy"))//file数组
}
Map集合:
map的创建
fun main() {
val map = mapOf("Jack" to 20, "Jason" to 18, "Jack" to 20)
mapOf(Pair("Jimmy", 20), Pair("Jacky", 20))
}
读取Map的值:
[ ]取值运算符,读取键对应的值,如果键不存在就返回null
getValue,读取键对应的值,如果键不存在就抛出异常
getOrElse,读取键对应的值,或者使用匿名函数返回默认值
getOrDefault,读取键对应的值,或者返回默认值
println(map["Jack"])
println(map.getValue("Jack"))
println(map.getOrElse("Rose"){"Unknown"})
println(map.getOrDefault("Rose",0))