Kotlin 基礎——List集合詳解

目錄

一、聲明和創建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

更多精彩內容請掃碼關注:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章