Kotlin集合——List集合

Kotlin集合——List集合

List集合的最大特徵就是集合元素都有對應的順序索引。List集合容許使用重複元素,能夠經過索引來訪問指定位置的集合元素。java

1、聲明和建立List集合

Kotlin提供了以下工具函數來建立List集合:json

  • 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}") 

輸出結果:ruby

[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 

2、使用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] 

3、可變的List

可變的List除了支持可變的Set所支持的方法外,還增長了根據索引執行插入、刪除、替換的方法。spa

//建立不可變集合,返回值是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()) 

輸出結果:code

[Java, Kotlin, Java, null, Go] [Java, Java, null, Go] [Java, Python, null, Go] 0
相關文章
相關標籤/搜索