kotlin集合框架

1、集合框架的接口类型对比

2、不可变和可变List

Kotlin 复制代码
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

Kotlin 复制代码
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、新增或删除便捷写法

Kotlin 复制代码
// 运算符可重载,可以使用运算符新增或删除集合元素。以后记录
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中的元组)。

Kotlin 复制代码
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)"
}

定义

Kotlin 复制代码
fun main() {
    val pair = Pair("name","lxc")
    println(pair) // (name, lxc)
    val p2 = "name" to "lxc"
    println(p2) // (name, lxc)
}

取值

Kotlin 复制代码
fun main() {
    // 调用方法取值
    val pair = Pair("name","lxc")
    println(pair.first) // name
    println(pair.second) // lxc
    // 解构取值
    val (name,age) = pair
    println("$name, $age") // name, lxc
}

6、总结

相关推荐
ejinxian12 分钟前
PHP 超文本预处理器 发布 8.5 版本
开发语言·php
福柯柯18 分钟前
Android ContentProvider的使用
android·contenprovider
不想迷路的小男孩19 分钟前
Android Studio 中Palette跟Component Tree面板消失怎么恢复正常
android·ide·android studio
餐桌上的王子20 分钟前
Android 构建可管理生命周期的应用(一)
android
菠萝加点糖24 分钟前
Android Camera2 + OpenGL离屏渲染示例
android·opengl·camera
用户20187928316735 分钟前
🌟 童话:四大Context徽章诞生记
android
软件黑马王子39 分钟前
C#系统学习第八章——字符串
开发语言·学习·c#
阿蒙Amon40 分钟前
C#读写文件:多种方式详解
开发语言·数据库·c#
yzpyzp43 分钟前
Android studio在点击运行按钮时执行过程中输出的compileDebugKotlin 这个任务是由gradle执行的吗
android·gradle·android studio
Da_秀1 小时前
软件工程中耦合度
开发语言·后端·架构·软件工程