Kotlin 基础——List集合详解

本文详细介绍了Kotlin中List集合的声明、创建、使用方法,包括不可变和可变List的操作,如get、indexOf、lastIndexOf、subList等,并探讨了可变List的插入、删除和替换功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、声明和创建List集合

二、使用List的方法

三、可变的List


List集合的最大特征就是集合元素都有对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。

一、声明和创建List集合

Kotlin提供了如下工具函数来创建List集合:

  • listOf():该函数返回不可变的List集合。该函数可接受0个或多个参数,这些参数将作为集合的元素。
  • listOfNotNull():该函数返回不可变的List集合。该函数与前一个函数的唯一区别是,该函数会自动去掉传入的一系列参数中的null值。
  • mutableListOf():该函数返回可变的MutableList集合。该函数可接受0个或多个参数,这些参数将作为集合的元素。
  • arrayListOf():该函数返回可变的ArrayList集合。该函数可接受0个或多个参数,这些参数将作为集合的元素。
    //创建不可变集合,返回值是List
    var list1 = listOf("Java", "Kotlin", null, "Go")
    println(list1)
    println("listOf的返回对象的实际类型:${list1.javaClass}")
    //创建不可变集合,返回值是list
    var list2 = listOfNotNull("Java", "Kotlin", null, "Go")
    println(list2)
    println("listOfNotNull的返回对象的实际类型:${list2.javaClass}")
    //创建可变集合,返回值是MutableList
    var mutableList = mutableListOf("Java", "Kotlin", null, "Go")
    println(mutableList)
    println("mutableListOf的返回对象的实际类型:${mutableList.javaClass}")
    //创建ArrayList集合
    var arrayList = arrayListOf("Java", "Kotlin", null, "Go")
    println(arrayList)
    println("arrayListOf的返回对象的实际类型:${arrayList.javaClass}")

输出结果:

[Java, Kotlin, null, Go]
listOf的返回对象的实际类型:class java.util.Arrays$ArrayList
[Java, Kotlin, Go]
listOfNotNull的返回对象的实际类型:class java.util.ArrayList
[Java, Kotlin, null, Go]
mutableListOf的返回对象的实际类型:class java.util.ArrayList
[Java, Kotlin, null, Go]
arrayListOf的返回对象的实际类型:class java.util.ArrayList

二、使用List的方法

List除了支持Set所支持的操作外,还增加了通过索引操作集合元素的方法。

  • get:带operator修饰的方法,因此可用"[]"运算符访问集合元素。
  • indexOf:返回集合元素在List中的索引。
  • lastIndexOf:返回集合元素在List中最后一次的出现位置。
  • subList:返回List集合的子集合。
    //创建不可变集合,返回值是List
    var list1 = listOf("Java", "Kotlin", null, "Go")
    for (i in list1.indices) {
        println(list1[i])
    }
    //获取指定元素的出现位置
    println(list1.indexOf("Kotlin"))
    //获取List的子集合
    println(list1.subList(1, 3))

输出结果:

Java
Kotlin
null
Go
1
[Kotlin, null]

三、可变的List

可变的List除了支持可变的Set所支持的方法外,还增加了根据索引执行插入、删除、替换的方法。

    //创建不可变集合,返回值是List
    var list1 = mutableListOf("Java", "Kotlin", null, "Go")
    //在索引2处插入一个新元素
    list1.add(2, "Java")
    println(list1)
    //删除索引1处的元素
    list1.removeAt(1)
    println(list1)
    //将索引1处的元素替换为"Python"
    list1[1] = "Python"
    println(list1)
    //清空List集合的所有元素
    list1.clear()
    println(list1.count())

输出结果:

[Java, Kotlin, Java, null, Go]
[Java, Java, null, Go]
[Java, Python, null, Go]
0

更多精彩内容请扫码关注:

在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值