Kotlin List
是一个接口和通用的元素集合。 List
接口继承了Collection <T>
类的形式。 它是不可变的,它的方法只支持读取功能。
要使用List
接口,需要使用listOf()
和listOf <E>()
函数。
List
的元素按顺序插入排序,包含与数组相同的索引号。
List接口声明
public interface List<out E> : Collection<E> (source)
List
接口中有几个函数可用,List
接口的一些函数如下所述。
函数 | 描述 |
---|---|
abstract fun contains(element: E): Boolean |
它检查指定的元素是否包含在此集合中。 |
abstract fun containsAll(elements: Collection<E>): Boolean |
它检查指定的所有元素是否包含在此集合中。 |
abstract operator fun get(index: Int): E |
它返回列表中给定索引处的元素。 |
abstract fun indexOf(element: E): Int |
返回列表中第一次出现的指定元素的索引,如果列表中不存在指定的元素,则返回-1 。 |
abstract fun isEmpty(): Boolean |
如果列表为空,则返回true ,否则返回false 。 |
abstract fun iterator(): Iterator<E> |
它返回此列表元素的迭代器。 |
abstract fun lastIndexOf(element: E): Int |
它返回列表中最后一次出现的指定元素的索引,如果列表中不存在指定的元素,则返回-1 。 |
abstract fun listIterator(): ListIterator<E> |
它在当前列表中以适当的顺序返回元素的列表迭代器。 |
abstract fun listIterator(index: Int): ListIterator<E> |
它从指定的索引开始,从当前列表中的正确顺序返回一个列表迭代器。 |
abstract fun subList(fromIndex: Int, toIndex: Int): List |
它返回列表的fromIndex (包括)和toIndex (不包括)索引之间的部分。 |
Kotlin List示例1
下面来看看一个使用listOf()
函数的List
示例 -
fun main(args: Array<String>) { var list = listOf("Ajax", "Vivi", "Praka")//read only, fix-size for (element in list) { println(element) } }
执行上面示例代码,得到以下结果 -
Ajax Vivi Praka
Kotlin List示例2
在listOf()
函数中,可以同时传递不同类型的数据。 List
也可以使用索引范围遍历列表。
fun main(args: Array<String>){ var list = listOf(1,2,3,"Ajax","Vivi","Praka")//read only, fix-size for(element in list){ println(element) } println("-------------- 使用范围遍历 -------------------- ") for(index in 0..list.size-1){ println(list[index]) } }
执行上面示例代码,得到以下结果 -
1 2 3 Ajax Vivi Praka -------------- 使用范围遍历 -------------------- 1 2 3 Ajax Vivi Praka
Kotlin List示例3
更具体地说,可以提供列表的泛型类型,例如listOf <Int>()
,listOf <String>()
,listOf <Any>()
函数,看看下面的例子。
fun main(args: Array<String>){ var intList: List<Int> = listOf<Int>(1,2,3) var stringList: List<String> = listOf<String>("Ajax","Vivi","zyiz") var anyList: List<Any> = listOf<Any>(1,2,3,"Ajax","Vivi","zyiz") println("print int list") for(element in intList){ println(element) } println("--------------------------") println("print string list") for(element in stringList){ println(element) } println("--------------------------") println("print any list") for(element in anyList){ println(element) } }
执行上面示例代码,得到以下结果 -
print int list 1 2 3 -------------------------- print string list Ajax Vivi zyiz -------------------------- print any list 1 2 3 Ajax Vivi zyiz
Kotlin List示例4
下面来看看使用listOf <T>()
函数使用Kotlin List接口的其它函数。
fun main(args: Array<String>){ var stringList: List<String> = listOf<String>("Ajax","Vivi","Prakash","Vivi","Rohan") var list: List<String> = listOf<String>("Ajax","Vivi","Prakash") for(element in stringList){ print(element+" ") } println() println(stringList.get(0)) println(stringList.indexOf("Vivi")) println(stringList.lastIndexOf("Vivi")) println(stringList.size) println(stringList.contains("Prakash")) println(stringList.containsAll(list)) println(stringList.subList(2,4)) println(stringList.isEmpty()) println(stringList.drop(1)) println(stringList.dropLast(2)) }
执行上面示例代码,得到以下结果 -
Ajax Vivi Prakash Vivi Rohan Ajax 1 3 5 true true [Prakash, Vivi] false [Vivi, Prakash, Vivi, Rohan] [Ajax, Vivi, Prakash]
List接口的限制是它是不可变的。 声明后,它不能在列表中添加更多元素。为了解除这个限制,集合框架中提供了可变列表。