09. kotlin 数组和集合类
数组
数组在 Kotlin 是由 Array 类表示的。它有 get ()和 set ()函数,这些函数通过运算符重载约定转换为[] ,还有 size 属性,以及其他有用的成员函数:
1 | class Array<T> private constructor() { |
要创建一个数组,使用函数 arrayOf ()并将条目值传递给它,以便 arrayOf (1, 2, 3)创建一个数组[1, 2, 3]。或者,可以使用 arrayOfNull ()函数创建一个给定大小的数组,其中填充 null 元素。
另一种选择是使用 Array 构造函数,该构造函数接受数组大小,并返回给定索引的数组元素值:
1 | // Creates an Array<String> with values ["0", "1", "4", "9", "16"] |
[] 操作代表对成员函数 get ()和 set ()的调用。
Kotlin 的数组是不变的。这意味着 Kotlin 不允许我们将 Array<String>
赋给 Array<Any>
,这可以防止可能的运行时故障(但是您可以使用 Array<out Any>
,参见类型投影)。
基元类型数组
Kotlin 还有一些类,它们表示基元类型的数组,不需要装箱开销: ByteArray、 ShortArray、 IntArray 等等。这些类与 Array 类没有继承关系,但它们具有相同的一组方法和属性。它们每一个都有相应的工厂功能:
1 | val x: IntArray = intArrayOf(1, 2, 3) |