文章目录
介绍
在Kotlin中,集合类型包含三种类型:它们分别是:List、Set、Map,这三种类型都有几个共通点:
- 它们都是接口,并不是实际的类。
- 它们都继承至Collection接口,而Collection< out E>又继承与Iterable< out T>接口。它们几乎上只实现了isEmpty()、size属性、get()、contains()等方法。
- 这三种集合类型分别又存在MutableList< E>、MutableSet< E>、MutableMap<K,V>接口,这些接口中提供了改变、操作集合的方法。例如add()、clear()、remove()等函数。
so,Kotlin集合类型可分为可变和不可变集合类型。List、Set、Map为不可变集合类型,MutableList、MutableSet、MutableMap为可变集合类型。
List
创建不可变List
使用listOf函数来构建一个不可变的List,listOf这个构建函数有下面3个重载函数。
- listOf()用于创建没有元素的空List:
/**
* Returns an empty read-only list. The returned list is serializable (JVM).
* @sample samples.collections.Collections.Lists.emptyReadOnlyList
*/
@kotlin.internal.InlineOnly
public inline fun <T> listOf(): List<T> = emptyList()
- listOf(element: T)创建只有一个元素的List:
/**
* Returns an immutable list containing only the specified object [element].
* The returned list is serializable.
* @sample samples.collections.Collections.Lists.singletonReadOnlyList
*/
public fun <T> listOf(element: T): List<T> = java.util.Collections.singletonList(element)
- listOf(vararg elements: T)创建拥有多个元素的List:
/**
* Returns a new read-only list of given elements. The returned list is serializable (JVM).
* @sample samples.collections.Collections.Lists.readOnlyList
*/
public fun <T> listOf(vararg elements: T): List<T> = if (elements.size > 0) elements.asList() else emptyList()
例:
//创建一个空List
val numbersNull = listOf<Int>()
//创建只有一个元素的List
val numbersOne = listOf<Int>(1)
//创建多个元素的List
val numbersMuch = listOf<Int>(1, 2, 4, 9, 3, 5, 6, 1, 0, -1)
println(numbersNull)
println(numbersOne)
println(numbersMuch)
结果:
[]
[1]
[1, 2, 4, 9, 3, 5, 6, 1, 0, -1]
List的方法
get:
根据索引获取元素,与[]等效:
例:
val num = listOf("alfred", 29, "男"