在 Kotlin 中获取 forEach 循环的当前索引

Kailash Vaviya 2024年2月15日
  1. 在 Kotlin 中使用 forEachIndexed()forEach 循环中获取项目的当前索引
  2. 在 Kotlin 中使用 withIndex()forEach 循环中获取项目的当前索引
  3. 在 Kotlin 中使用 IndicesforEach 循环中获取项目的当前索引
  4. 在 Kotlin 中使用 filterIndexed() 获取数组项的索引
在 Kotlin 中获取 forEach 循环的当前索引

了解 forEach 循环中项目的当前索引可以帮助你找到要查找的项目的位置。本文将通过不同的方式来查找 forEach 循环的当前索引。

有三种不同的方法可以得到我们想要的,它们是:

  1. 使用 forEachIndexed()
  2. 使用 withIndex()
  3. 使用 indices

在 Kotlin 中使用 forEachIndexed()forEach 循环中获取项目的当前索引

我们可以使用 forEachIndexed() 函数来检索当前索引。它是一个接受数组作为输入的内联函数。

forEachIndexed() 输出索引项及其值。

使用 forEachIndexed() 函数的语法如下。

collection.forEachIndexed { index, element ->
    // ...
}

让我们举个例子来了解它是如何工作的。我们将创建一个数组 Student 并使用 forEachIndexed() 遍历它以获取索引和值作为以下示例中的输出。

fun main() {
    var Student = listOf("Virat", "David", "Steve", "Joe", "Chris")

    Student.forEachIndexed {index, element ->
        println("The index is $index and the item is $element ")
    }
}

输出:

使用 forEachIndexed 获取 Kotlin 中的当前索引

在 Kotlin 中使用 withIndex()forEach 循环中获取项目的当前索引

除了 forEachIndexed(),我们还可以使用 withIndex() 函数在 Kotlin 的 forEach 循环中获取项目的当前索引。

它是一个库函数,允许通过循环访问索引和值。

我们将再次使用相同的数组,但这次使用 withIndex() 函数来访问 Student 数组的索引和值。

fun main() {
    var Student = listOf("Virat", "David", "Steve", "Joe", "Chris")

    for ((index, element) in Student.withIndex()) {
        println("The index is $index and the item is $element ")
    }
}

输出:

在 Kotlin 中使用 withIndex 获取当前索引

在 Kotlin 中使用 IndicesforEach 循环中获取项目的当前索引

我们还可以使用 indices 关键字来获取当前索引。使用 indices 的语法如下。

for (i in array.indices) {
    print(array[i])
}

让我们在我们的 Student 数组中使用这个语法来访问索引和值。

fun main(args : Array<String>){

    val Student = arrayOf("Virat", "David", "Steve", "Joe", "Chris")
    for (i in Student.indices){
        println("Student[$i]: ${Student[i]}")
    }
}

输出:

在 Kotlin 中使用索引获取当前索引

在 Kotlin 中使用 filterIndexed() 获取数组项的索引

我们可以使用上述函数获取当前索引。但是,如果我们只想访问特定的索引而不是所有索引怎么办。

我们可以使用 filterIndexed() 函数来做到这一点。

filterIndexed() 函数接受一个条件作为参数。根据我们传递的条件,该函数可以过滤输出以显示所需的索引。

让我们使用 filterIndexed() 函数仅访问 Student 数组中偶数索引处的值。

fun main(args : Array<String>){

    val Student = arrayOf("Virat", "David", "Steve", "Joe", "Chris")
        .filterIndexed { index, _ ->  index % 2 == 0 }
        .forEach { println(it) }
}

输出:

在 Kotlin 中使用 filterIndexed 获取特定索引的值

作者: Kailash Vaviya
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn