gpt4 book ai didi

Java索引数组越界异常

转载 作者:行者123 更新时间:2023-12-01 19:06:24 25 4
gpt4 key购买 nike

这个循环很奇怪。

我在 Java 中运行了这个,它给出了索引越界异常。我在源代码中的任何地方都找不到 int l 声明,也无法弄清楚它是什么,并发现以这种方式声明它是合法的。

但是这里的问题是,我不明白这段代码在做什么。对于任何大小的 resultSIList,它都会给出 ArrayIndexOutOfBoundsException

for (int i = offset, l = Math.min(i + maxItemsInOnePage, totalSIs); i < l; i++){
resultSIList.get(i);
}

编辑:谢谢大家。

这是我用来尝试理解整个循环的可运行代码。是的,这是一个可怕的垃圾。

public class IndexOutOfBoundsTest {
public static void main(String args[]){
int offset = 50;

int maxItemsInOnePage = 50;

int totalSIs = 50;

final int buildThis = 15;

List resultSIList = new ArrayList();

// build list
for(int zz = 0; zz < buildThis; zz ++){
resultSIList.add("Hi " + zz);
}

try{
for (int i = offset,
d = Math.min(i + maxItemsInOnePage, totalSIs);
i < d; i++){

System.out.println(resultSIList.get(i));
}
}catch(Exception e){
e.printStackTrace();
}
}
}

最佳答案

此代码将“resulSIList”从“offset”位置循环到“offset + maxItemsInOnePage”和“totalSIs”中的最小值。

如果 offset > 0 并且totalSIs = resultSIList.size() 我认为它不会给你一个越界异常。

在您的示例中,偏移量为 50,而列表大小仅为 15。您必须检查偏移量是否小于列表大小。

关于Java索引数组越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9904522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com