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", "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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM