IndexOutOfBounds:为什么低点继续超过高点

IndexOutOfBounds: Why does low keep going past high

我一直收到下面的 if 语句的 IndexOutOfBounds 错误,我不知道为什么。 low初始为0,high设置为24,ArrayList的大小为25。

        for(int i = low + 1; low <= high; i++){
                if(list.get(i).compareTo(list.get(pivIndex)) < 0){ //this line
                E temp = list.get(pivIndex);
                list.remove(pivIndex);
                list.add(pivIndex, list.get(i));

                list.remove(i);
                list.add(i, temp);
            }
        }

您没有绑定 i。您的 for 循环条件显示 low <= high,但这些变量都没有在循环中更新。同时,i 变大直到太大,这会导致异常。