IndexOutOfBounds:为什么低点会越过高点

问题描述 投票:-3回答:1

我在下面的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);
            }
        }

我在下面的if语句中不断收到IndexOutOfBounds错误,我不知道为什么。 low最初为0,high设置为24,ArrayList的大小为25。for(int i = low + 1; ...

java for-loop arraylist indexoutofboundsexception quicksort
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.