6.1 集合类型之List 、MutableList

介绍

在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, "男"
  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alfred Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值