【2025最新版Kotlin教程】Kotlin第一行代码系列第十二课-集合和数组

109 阅读2分钟
【2025最新版Kotlin教程】Kotlin第一行代码系列第十二课-集合和数组

有了前面的知识,这些应该你看得懂。 或者不懂,但可以作为以后的api使用

一、数组Array:
fun main() {
    //1.Int数组
    val intArrayOf = intArrayOf(10, 20, 30)
    //2.Double 数组
    val doubleArrayOf = doubleArrayOf(2.3, 2.0, 1.5)
    //3.Float 数组
    val floatArrayOf = floatArrayOf(2.0f, 1.5f)
    //4.Long 数组
    val longArrayOf = longArrayOf(10L, 20L)
    //5.Short 数组
    val shortArrayOf = shortArrayOf(10, 20)
    //6.Byte 数组
    val byteArrayOf = byteArrayOf(1, 2, 3)
    //7.Boolean 数组
    val booleanArrayOf = booleanArrayOf(true, false)
    //8.Object 数组
    val arrayOf = arrayOf(User(), User())
}
//定义一个类
private class User
二、List:
/**
 *
 * 固定长度的List
 */
fun main() {
    //实例化一个固定长度的List集合
    val list = listOf("Sam", "Jack", "Chork", "Yam")

    println(list[2])
    //该方式获取时,若索引越界会抛异常
    //println(list[4])
    println(list.elementAt(1))
    //该方式获取指定的索引的值,若越界会返回指定的默认字符串
    println(list.getOrElse(4){"UnKnown"})
    println(list.getOrElse(2){"UnKnown"})
    //同上方法
    println(list.elementAtOrElse(4){"UnKnown"})
    //该方式获取指定索引的值时,若越界则会返回null
    println(list.getOrNull(4))
    //同上方法,内部调用了getOrNull方法
    println(list.elementAtOrNull(4))

    //********* 转可变集合
    val toMutableList = list.toMutableList()

    //********* 元素去重
    list.distinct() //等价于 list.toSet().toList()

    //********* 转数组
    //这里list是对象类型的故要用toTypedArray
    val toTypedArray = list.toTypedArray()
    //整数List
    listOf(10,20).toIntArray()
}
三、循环遍历List:
/**
 *
 * List遍历方式
 */
fun main() {
    val list = listOf("Sam", "Jack", "Chork")


    //*********** 遍历方式一 ***************
    for (s in list){
         println(s)
    }

    //*********** 遍历方式二 ***************
    list.forEach {
        println(it)
    }

    //*********** 遍历方式三 带索引 ***************
    list.forEachIndexed { index, s ->
        println("${index},${s}")
    }

    //*********** 遍历方式四 带索引 ***************
    list.withIndex().forEach {
        println("${it.index},${it.value}")
    }

    //*********** 遍历方式五 解构 ***************
    val (first,second,third) = list
    println("$first $second $third")
    //若不想取某个元素的值,则可以通过下划线“_”
    val (origin,_,last) = list
    println("$origin $last")
}
四、Map:
/**
 *
 * 不可变map集合
 */
fun main() {
    val map = mapOf("Jack" to 10, "Sam" to 20, "Luck" to 18)

    //*********** 读取Map的值
    println(map["Jack"])
    println(map.getValue("Sam"))
    //安全取值函数
    println(map.getOrElse("Sam"){"Unknown"})



}
五、循环遍历Map:
/**
 *
 * map遍历
 */
fun main() {
    val map = mapOf("Jack" to 10, "Sam" to 20, "Luck" to 18)

    //方式一
    map.forEach {
        println("${it.key}${it.value}")
    }

    //方式二
    map.forEach { (t, u) ->
        println("${t} -- ${u}")
    }

    //方式3:遍历
    for (kv in map){
        println("key=${kv.key},value=${kv.value}")
    }
}
六、MutableList:
/**
 *
 * 定义可变长度的List集合
 */
fun main() {
    val mutableList = mutableListOf<String>()
    //**************添加元素
    mutableList += "Hab"    //mutator函数
    mutableList.add("Hab2")
    mutableList.add(1,"Hab3")
    println(mutableList)

    //**************删除元素
    mutableList -= "Sam"
    mutableList.removeAt(0)
    mutableList.removeFirst()
    mutableList.removeFirstOrNull()
    mutableList.removeLast()
    mutableList.removeLastOrNull()
    mutableList.remove("Hab2")
    //移除符合条件的数据
    //mutableList.removeIf{it.contains("k")}
    println(mutableList)

    //**************转不可变的List
    val toList = mutableList.toList()

    //**************转Set
    val toSet = mutableList.toSet()

}
七、MutableMap:
/**
 *
 * 可变长度的map集合
 */
fun main() {
    val map = mutableMapOf("Jack" to 10, "Sam" to 20, "Luck" to 18)
    //******** 添加元素
    map += "Haha" to 16
    map.put("Hob",18)
    map.getOrPut("Choice"){17}
    println(map)

    //******** 移除元素
    map -= "Haha"
    map.remove("Jack")
    println(map)

    //******** map转List集合
    val toList = map.toList()
    println(toList)

}
八、Set:
/**
 * Created by zhanghai on 2021/7/14.
 * function:不可变Set集合
 */
fun main() {
    val set = setOf("Sam", "Jack", "Chork", "Sam")
    println(set.elementAt(1))
    println(set.elementAtOrElse(1){"UnKnown"})
    println(set.elementAtOrNull(1))

    //转可变长度的Set集合
    val toMutableSet = set.toMutableSet()
}
九、MutableSet:
/**
 *
 * 可变长度的Set集合
 */
fun main() {
    val mutableSet = mutableSetOf("Sam", "Jack", "Chork", "Yam")
    //********* 添加元素
    mutableSet += "Yam"
    mutableSet.add("Hob")
    println(mutableSet)

    //********* 删除元素
    mutableSet -= "Sam"
    mutableSet.removeIf{it.contains("k")}
    println(mutableSet)

    //********* 转不可变Set集合
    val toSet = mutableSet.toSet()
}
整个kotlin教程的源码项目结构图:

在这里插入图片描述
有问题或者完整源码的可以看简介联系我,也可以私信我,我每天都看私信的