将元素放入 Kotlin 的 MutableList 中

Putting Elements in MutableList of Kotlin

fun main() {
    var list1 = mutableListOf<Any>()
    for(i in 0 until 5) {
        list1.set(i,i)
    }
    println(list1)
}

以上代码为长度 0 提供了超出边界的索引 0。 什么是错误。我如何使用索引将元素放入 MutableList 中。

你用错了方法。

根据 set 的文档:“它用指定元素替换元素并在给定索引处添加新元素。”

在这里声明一个空的 mutableList。因此,尝试在某个索引处进行替换会给您一个数组越界异常。

如果您想添加一个新元素,您需要使用 add 方法:“它将给定的元素添加到集合中。”

所以如果我们使用add方法可以这样写:

fun main() {
    var list1 = mutableListOf<Any>()
    for(i in 0 until 5) {
        list1.add(i,i)
    }
    println(list1)
}

或者不使用索引参数:

fun main() {
    var list1 = mutableListOf<Any>()
    for(i in 0 until 5) {
        list1.add(i)
    }
    println(list1)
}

您仍然可以通过声明可变列表的初始长度来使用 set 方法(即使这不是最好的方法),如@lukas.j 所说:

fun main() {
    var list1 = MutableList<Any>(5) {it}
    for(i in 0 until 5) {
        list1.set(i,i)
    }
    println(list1)
}