1、集合框架的接口类型对比
2、不可变和可变List
fun main() {
// 不可变List - 不能删除或添加元素
val intList: List<Int> = listOf(1,2,3)
intList.forEach{
println(it) // 1 2 3
}
println("===============================")
// 可变List - 可以删除或添加元素
val mutableList = mutableListOf(1,2,3)
mutableList.add(4)
mutableList.remove(0)
mutableList.forEach{
println(it) // 2 3 4
}
}
3、可变和不可变Map
fun main() {
// 不可变Map
val m1:Map<String, Any> = mapOf("name" to "lxc", "age" to 18)
println(m1) // {name=lxc, age=18}
// 可变map
val m2:MutableMap<String, Any> = mutableMapOf("name" to "lxc", "age" to 18)
// 修改元素
m2["name"] = "sx"
println(m2) // {name=sx, age=18}
// 添加元素
m2["address"] = "china"
println(m2) // {name=sx, age=18, address=china}
}
4、新增或删除便捷写法
// 运算符可重载,可以使用运算符新增或删除集合元素。以后记录
fun main() {
val intlist = mutableListOf<Int>()
// 循环往集合中添加元素
for (i in 0..10) {
intlist += i
}
println(intlist) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 循环删除集合元素
for (i in 0..10) {
intlist -= i
}
println(intlist) // []
}
5、Pair
kotlin中Pair是一个数据类(定义类似python中的元组)。
public data class Pair<out A, out B>(
public val first: A,
public val second: B
) : Serializable {
/**
* Returns string representation of the [Pair] including its [first] and [second] values.
*/
public override fun toString(): String = "($first, $second)"
}
定义
fun main() {
val pair = Pair("name","lxc")
println(pair) // (name, lxc)
val p2 = "name" to "lxc"
println(p2) // (name, lxc)
}
取值
fun main() {
// 调用方法取值
val pair = Pair("name","lxc")
println(pair.first) // name
println(pair.second) // lxc
// 解构取值
val (name,age) = pair
println("$name, $age") // name, lxc
}