Kotlin 简明教程

Kotlin - Arrays

数组用于在单个变量中存储多个相同数据类型的项目,例如单个变量名称下的整数或字符串。

例如,如果我们需要存储1000名员工的姓名,那么我们无需创建1000个不同的字符串变量,而只需定义一个容量为1000的字符串数组。

与任何其他现代编程语言一样,Kotlin也支持数组,并提供了广泛的数组属性和支持函数来操作数组。

Creating Arrays in Kotlin

要在Kotlin中创建一个数组,我们使用 arrayOf() 函数,并在其中以逗号分隔列表放置值:

val fruits = arrayOf("Apple", "Mango", "Banana", "Orange")

我们还可以选择提供数据类型,如下所示:

val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange")

或者,可以使用 arrayOfNulls() 函数创建填充有null元素且大小固定的数组。

Primitive type Arrays

Kotlin还有一些内置的工厂方法来创建基本数据类型的数组。例如,创建整数数组的工厂方法是:

val num = intArrayOf(1, 2, 3, 4)

其他用于创建数组的工厂方法:

  1. byteArrayOf()

  2. charArrayOf()

  3. shortArrayOf()

  4. longArrayOf()

Get and Set the Elements of an Array

我们可以通过方括号内使用索引号来访问数组元素。Kotlin数组索引从零(0)开始。因此,如果要访问数组的第四个元素,则需要提供3作为索引。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange")

   println( fruits [0])
   println( fruits [3])

}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Apple
Orange

Kotlin还提供了 get()set() 成员函数,用于获取和设置特定索引处的value值。查看以下示例:

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange")

   println( fruits.get(0))
   println( fruits.get(3))

   // Set the value at 3rd index
   fruits.set(3, "Guava")
   println( fruits.get(3))
}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Apple
Orange
Guava

Kotlin Array Length

Kotlin提供了名为 size 的数组属性,该属性返回数组的大小,即长度。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange")

   println( "Size of fruits array " + fruits.size )

}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Size of fruits array 4

我们还可以使用 count() 成员函数获取数组的大小。

Loop Through an Array

我们可以使用 for 循环遍历数组。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange")

   for( item in fruits ){
      println( item )
   }

}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Apple
Mango
Banana
Orange

Check if an Element Exists

我们可以将 in 运算符与 if…​else 结合使用,以检查数组中是否存在元素。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange")

   if ("Mango" in fruits){
      println( "Mango exists in fruits" )
   }else{
      println( "Mango does not exist in fruits" )
   }

}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Mango exists in fruits

Distinct Values from Array

Kotlin允许在数组中存储重复值,但同时可以使用 distinct() 成员函数获取数组中存储的不同值。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange", "Apple")

   val distinct = fruits.distinct()
   for( item in distinct ){
      println( item )
   }
}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Apple
Mango
Banana
Orange

Dropping Elements from Array

我们可以使用 drop()dropLast() 成员函数分别从头或从后丢弃元素。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>("Apple", "Mango", "Banana", "Orange", "Apple")

   val result = fruits.drop(2) // drops first two elements.
   for( item in result ){
      println( item )
   }
}

当你运行上述 Kotlin 程序时,它将生成以下输出:

Banana
Orange
Apple

Checking an Empty Array

我们可以使用 isEmpty() 成员函数检查数组是否为空。如果数组为空,则此函数返回true。

Example

fun main(args: Array<String>) {
   val fruits = arrayOf<String>()
   println( "Array is empty : " + fruits.isEmpty())

}

当你运行上述 Kotlin 程序时,它将生成以下输出:

"Array is empty : true