使用Java中的数组列表遇到超出范围的异常错误

0 java sorting arraylist bubble-sort indexoutofboundsexception

我正在尝试为Java中的arraylists创建一个bubble swap方法,但是我遇到了一个错误.这是我的代码:

public static void BubbleSort()
{
    list.remove("");
    for (int i = list.size(); i > 0; i--)
    {
        for (int j=0; j < i; j++)
        {
            if(Integer.valueOf((String) list.get(j)) < Integer.valueOf((String) list.get(j + 1)))
                Swap(list.get(j), list.get(j + 1));
        }
    }
    System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)

这是它调用的Swap方法:

public static void Swap(Object object, Object object2)
{
    Object spotC = object; 
    list.set(list.indexOf(object), object2); 
    list.set(list.indexOf(object2), spotC);
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ian 6

时可能发生的异常ilist.size(),于是在然后嵌套for循环,当j需要其最后的值i - 1,它等于list.size() - 1,Swap被称为与元件

list.get(j), list.get(j + 1)
Run Code Online (Sandbox Code Playgroud)

换一种说法

list.get(list.size() - 1), list.get(list.size())
Run Code Online (Sandbox Code Playgroud)

list.get(list.size())由于索引无效,您无法访问.记住索引的开头0和结尾length - 1.