📜  从数组 kotlin 中删除元素 (1)

📅  最后修改于: 2023-12-03 15:36:18.554000             🧑  作者: Mango

从数组 Kotlin 中删除元素

在 Kotlin 中,可以使用 removeAt() 方法从数组中删除特定位置的元素,或使用 remove() 方法从数组中删除特定值的元素。

删除特定位置的元素

要删除特定位置的元素,请使用 removeAt() 方法,该方法接受一个整数参数,表示要删除的元素的索引。

val numbers = arrayOf(1, 2, 3, 4, 5)

numbers.removeAt(2)

// numbers 现在是 [1, 2, 4, 5]

上面的代码删除了索引为 2 的元素,即数字 3

删除特定值的元素

要删除特定值的元素,请使用 remove() 方法,该方法接受一个参数,表示要删除的值。

val numbers = arrayOf(1, 2, 3, 4, 5)

numbers.remove(3)

// numbers 现在是 [1, 2, 4, 5]

上面的代码删除了数组中的数字 3

如果元素不存在会发生什么?

如果要删除的元素不存在于数组中,则 remove() 方法不会做任何事情,而 removeAt() 方法将抛出一个异常。因此,在使用 removeAt() 方法之前,最好先检查索引是否有效。

val numbers = arrayOf(1, 2, 3, 4, 5)

if (numbers.indices.contains(2)) {
    numbers.removeAt(2)
}

上面的代码使用 indices 属性检查索引值 2 是否有效,如果有效,则删除该元素。如果索引值无效,则不进行任何操作。

使用 filter() 方法删除多个元素

如果要删除多个元素,则可以使用 filter() 方法过滤不需要的元素,然后重新创建一个新数组。

val numbers = arrayOf(1, 2, 3, 4, 5)

val newNumbers = numbers.filter { it != 2 && it != 4 }.toTypedArray()

// newNumbers 现在是 [1, 3, 5]

上面的代码使用 filter() 方法过滤掉数字 24,然后使用 toTypedArray() 方法将结果转换为数组。新数组 newNumbers 不包含数字 24

总结

在 Kotlin 中,从数组删除元素的方法取决于要删除元素的类型。使用 removeAt() 方法删除特定位置的元素,使用 remove() 方法删除特定值的元素。如果要删除多个元素,则可以使用 filter() 方法过滤掉不需要的元素。同时要注意处理异常情况。