在做java的一个最小化函数中,一直提示数组越界java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 3
下面代码中list是一个arraylist
代码详情:
public int min() {
int minNum=list.get(list.length());
for(int i=0;i<list.length();i++)
{
if(minNum>list.get(i))
{
minNum=list.get(i);
}
}
return minNum;
}
有查过说循环中不能有等号,所以把等号去了但是没有什么用?而且是在minNum那里报错就不是很明白为什么。
int minNum=list.get(list.length()-1);
list索引从0开始的,需要减1
错误提示意思:数组长度为3,访问索引3导致异常,最多访问索引2。
public int min() {
int minNum=list.get(list.length()-1);
for(int i=0;i<list.length();i++)
{
if(minNum>list.get(i))
{
minNum=list.get(i);
}
}
return minNum;
}
数组的下标是从0开始的,你这里既然取了list.length(),那么对于数组就是list的长度-1,写成int minNum=list.get(list.length()-1);即可。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!