对于下面的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);
}
}
答案 0 :(得分:0)
您没有限制i
。您的for循环条件为low <= high
,但这些变量均未在循环中更新。同时,i
会变大,直到变得太大为止,这会导致异常。