You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin嵌套MutableList添加元素报错:IndexOutOfBoundsException

索引越界异常的原因与修复

错误原因

你初始化的totalList是一个空的MutableList<MutableList<Int>>,里面没有任何子列表。当循环执行到totalList[i].add(element)时,totalList的长度为0,根本不存在索引i对应的元素(哪怕i=0也不行),所以直接触发java.lang.IndexOutOfBoundsException。Kotlin的可变列表不会自动为不存在的索引创建元素,必须手动初始化子列表。

修复方案

方案一:提前创建子列表(推荐)

在遍历i的循环中,先往totalList里添加一个空的子列表,再向这个子列表中添加元素:

val totalList = mutableListOf<MutableList<Int>>()

fun main() {
    for (i in 0..15) {
        // 先添加空的子列表到totalList
        val subList = mutableListOf<Int>()
        totalList.add(subList)
        for (j in 0..10) {
            // 替换为你的element计算逻辑
            val element = i * j
            subList.add(element)
        }
    }
}

方案二:动态补全子列表

如果i的范围不确定或不连续,可以在访问totalList[i]前检查列表长度,不足时补充空列表:

val totalList = mutableListOf<MutableList<Int>>()

fun main() {
    for (i in 0..15) {
        // 确保totalList的长度足够覆盖当前i的索引
        while (totalList.size <= i) {
            totalList.add(mutableListOf())
        }
        for (j in 0..10) {
            // 替换为你的element计算逻辑
            val element = i * j
            totalList[i].add(element)
        }
    }
}

内容的提问来源于stack exchange,提问作者vad070

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:10:31