您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页Kotlin集合——List集合

Kotlin集合——List集合

来源:五一七教育网
Kotlin集合——List集合

Kotlin集合——List集合

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

⼀、声明和创建List集合

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

listOf():该函数返回不可变的List集合。该函数可接受0个或多个参数,这些参数将作为集合的元素。

listOfNotNull():该函数返回不可变的List集合。该函数与前⼀个函数的唯⼀区别是,该函数会⾃动去掉传⼊的⼀系列参数中的null值。mutableListOf():该函数返回可变的MutableList集合。该函数可接受0个或多个参数,这些参数将作为集合的元素。arrayListOf():该函数返回可变的ArrayList集合。该函数可接受0个或多个参数,这些参数将作为集合的元素。

//创建不可变集合,返回值是List

var list1 = listOf(\"Java\ println(list1)

println(\"listOf的返回对象的实际类型:${list1.javaClass}\") //创建不可变集合,返回值是list

var list2 = listOfNotNull(\"Java\ println(list2)

println(\"listOfNotNull的返回对象的实际类型:${list2.javaClass}\") //创建可变集合,返回值是MutableList

var mutableList = mutableListOf(\"Java\ println(mutableList)

println(\"mutableListOf的返回对象的实际类型:${mutableList.javaClass}\") //创建ArrayList集合

var arrayList = arrayListOf(\"Java\ 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\ for (i in list1.indices) { println(list1[i]) }

//获取指定元素的出现位置 println(list1.indexOf(\"Kotlin\")) //获取List的⼦集合

println(list1.subList(1, 3))

输出结果:

JavaKotlinnullGo1

[Kotlin, null]

三、可变的List

可变的List除了⽀持可变的Set所⽀持的⽅法外,还增加了根据索引执⾏插⼊、删除、替换的⽅法。

//创建不可变集合,返回值是List

var list1 = mutableListOf(\"Java\ //在索引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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务