Kotlin教程:List接口

2020-04-2121:49:38编程语言入门到精通Comments1,506 views字数 3075阅读模式

Kotlin List是一个接口和通用的元素集合。 List接口继承了Collection <T>类的形式。 它是不可变的,它的方法只支持读取功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

要使用List接口,需要使用listOf()listOf <E>()函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

List的元素按顺序插入排序,包含与数组相同的索引号。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

List接口声明文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

public interface List<out E> : Collection<E> (source)
Kotlin

Kotlin List接口的函数

List接口中有几个函数可用,List接口的一些函数如下所述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

函数描述
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文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

下面来看看一个使用listOf()函数的List示例 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

fun main(args: Array<String>) {
    var list = listOf("Ajax", "Vivi", "Praka")//read only, fix-size
    for (element in list) {
        println(element)
    }
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

Ajax
Vivi
Praka
Shell

Kotlin List示例2
listOf()函数中,可以同时传递不同类型的数据。 List也可以使用索引范围遍历列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

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])  
    }  
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

1
2
3
Ajax
Vivi
Praka
-------------- 使用范围遍历 -------------------- 
1
2
3
Ajax
Vivi
Praka
Shell

Kotlin List示例3文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

更具体地说,可以提供列表的泛型类型,例如listOf <Int>()listOf <String>()listOf <Any>()函数,看看下面的例子。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

fun main(args: Array<String>){
    var intList: List<Int> = listOf<Int>(1,2,3)
    var stringList: List<String> = listOf<String>("Ajax","Vivi","Yiibai")
    var anyList: List<Any> = listOf<Any>(1,2,3,"Ajax","Vivi","Yiibai")
    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)
    }
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

print int list
1
2
3
--------------------------
print string list
Ajax
Vivi
Yiibai
--------------------------
print any list
1
2
3
Ajax
Vivi
Yiibai
Shell

Kotlin List示例4文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

下面来看看使用listOf <T>()函数使用Kotlin List接口的其它函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

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))
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

Ajax Vivi Prakash Vivi Rohan 
Ajax
1
3
5
true
true
[Prakash, Vivi]
false
[Vivi, Prakash, Vivi, Rohan]
[Ajax, Vivi, Prakash]
Shell

List接口的限制是它是不可变的。 声明后,它不能在列表中添加更多元素。为了解除这个限制,集合框架中提供了可变列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-list.html#article-start文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18281.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/18281.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定