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)
时可能发生的异常i是list.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.