IndexOutOfBounds:为什么低点会持续超过高点

时间:2019-11-22 00:10:32

标签: java for-loop arraylist indexoutofboundsexception quicksort

对于下面的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);
            }
        }

1 个答案:

答案 0 :(得分:0)

您没有限制i。您的for循环条件为low <= high,但这些变量均未在循环中更新。同时,i会变大,直到变得太大为止,这会导致异常。