java的arraylist数组越界问题

在做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;

    }


img

有查过说循环中不能有等号,所以把等号去了但是没有什么用?而且是在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);即可。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632