📜  Kotlin 数组

📅  最后修改于: 2022-05-13 01:55:21.502000             🧑  作者: Mango

Kotlin 数组

数组是几乎所有编程语言中最基本的数据结构之一。数组背后的想法是存储相同数据类型的多个项目,例如单个变量名下的整数字符串
数组用于在编程中组织数据,以便可以轻松地对一组相关的值进行排序或搜索。
以下是数组的一些基本属性——

  • 它们存储在连续的内存位置。
  • 它们可以通过它们的索引以编程方式访问(array[1]、array[0] 等)
  • 它们是可变的。
  • 它们的大小是固定的。

要了解有关数组数据结构的更多信息,请查看数组教程。

创建一个数组 -

在 Kotlin 中,数组不是原生数据类型,而是由 Array 类表示的相似项的可变集合。
在 Kotlin 中定义数组有两种方法。

使用arrayOf()函数–

我们可以使用库函数arrayOf()通过将元素的值传递给函数来创建一个数组。
句法:

val num = arrayOf(1, 2, 3, 4)   //implicit type declaration
val num = arrayOf(1, 2, 3) //explicit type declaration

使用 arrayOf() 和 arrayOf 函数创建数组的 Kotlin 程序-

fun main()
{
    // declaring an array using arrayOf()
    val arrayname = arrayOf(1, 2, 3, 4, 5)
    for (i in 0..arrayname.size-1)
    {
        print(" "+arrayname[i])
    }
    println()
    // declaring an array using arrayOf
    val arrayname2 = arrayOf(10, 20, 30, 40, 50)
    for (i in 0..arrayname2.size-1)
    {
        print(" "+arrayname2[i])
    }
}

输出:

1 2 3 4 5
 10 20 30 40 50

使用 Array 构造函数 –

由于 Array 是 Kotlin 中的一个类,我们也可以使用 Array 构造函数来创建一个数组。
构造函数有两个参数:

  1. 数组的大小,以及
  2. 一个函数,它接受给定元素的索引并返回该元素的初始值。

句法:

val num = Array(3, {i-> i*1})

在上面的示例中,我们将数组的大小作为 3 和一个将元素值从 0 初始化到 9 的 lambda 表达式传递。

Kotlin 使用构造函数创建数组的程序 -

fun main()
{
    val arrayname = Array(5, { i -> i * 1 })
    for (i in 0..arrayname.size-1)
    {
        println(arrayname[i])
    }
}

输出:

0
1
2
3
4

除此之外,Kotlin 还内置了一些工厂方法来创建原始数据类型的数组,例如 byteArray、intArray、shortArray 等。这些类没有扩展 Array 类;但是,它们实现了相同的方法和属性。

例如,创建整数数组的工厂方法是:

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

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

  • byteArrayOf()
  • charArrayOf()
  • 短数组()
  • 长数组()

访问和修改数组 –

到目前为止,我们已经了解了如何在 Kotlin 中创建和初始化数组。现在,让我们看看如何访问和修改它们。
同样,有两种方法可以做到这一点:

    使用get()set()方法——

    如您所知,Kotlin 中的数组基本上是一个。因此,我们可以通过它的成员函数访问一个类对象的数据。 get()set()函数被称为成员函数。

    get()方法接受一个参数——元素的索引并返回该索引处的项目的值。
    句法:

val x = num.get(0)

set()方法有两个参数:元素的索引和要插入的值。
句法:

num.set(1, 3)

上面的代码将数组中第二个元素的值设置为 3

使用索引运算符[ ] –

[ ]运算符可用于访问和修改数组。
要访问数组元素,语法为:

val x = num[1]

这会将num中第二个元素的值分配给x

要修改数组元素,我们应该这样做:

num[2] = 5;

这会将 num 数组中第三个元素的值更改为 5。

注意:在内部,索引运算符或 [ ] 实际上是重载运算符(请参阅运算符重载),仅代表对get()set()成员函数的调用。

这是一个 Kotlin 数组操作的工作示例,我们在其中创建一个数组,修改它的值,并访问一个特定的元素:

fun main()
{   // declare an array using arrayOf()
    val num = arrayOf(1, 2, 3, 4, 5)
  
    num.set(0, 10)  // set the first element equal to 10
    num.set(1, 6)   // set the secondelement equal to 6
  
    println(num.get(0)) // print the first element using get()
    println(num[1]) // print the second element using []
}

输出:

10
6

遍历数组 –

数组的一个重要属性是它可以以编程方式遍历,并且可以单独操作数组中的每个元素。 Kotlin 支持几种强大的遍历数组的方法。

遍历数组时最简单和最常用的习惯用法是使用 for 循环。
句法:

for(i in num.indices){
      println(num[i])
  }

使用for循环遍历数组的Kotlin程序-

// Traversing an array
fun main()
{
    val num = arrayOf(1, 2, 3, 4, 5)
    num.set(0, 10)
    num.set(1, 6)
    for (i in num.indices)
    {
        println(num[i])
    }
}

输出:

10
6
3
4
5

或者,我们可以使用范围来实现相同的效果。在 Kotlin 中,范围是两个值(开始和结束)之间的间隔,可以使用(..)运算符创建。然后可以使用in关键字完成对范围的遍历。
范围的语法:

for (i in 0..10){
    println(i)
}

数组中元素的范围定义为 0 到 size-1。因此,要使用范围遍历数组,我们在数组名称上运行从 0 到 size-1 的循环。
使用范围遍历数组的 Kotlin 程序-

// Traversing an array
fun main()
{
    val arrayname = arrayOf(1, 2, 3, 4, 5)
    for (i in 0..arrayname.size-1)
    {
        println(arrayname[i])
    }
}

输出:

1
2
3
4
5

另一种可以说是不那么乏味的方法是使用 foreach 循环。

句法:

arrayname.forEach({index->println(index)})

使用 foreach 循环遍历数组的 Kotlin 程序-

// Traversing an array
fun main()
{
    val arrayname = arrayOf(1, 2, 3, 4, 5)
    arrayname.forEach({ index -> println(index) })
}

输出:

1
2
3
4
5