我正在尝试为 Java 中的数组列表创建一个气泡交换方法,但遇到了错误。 这是我的代码:
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);
}
这是它调用的 Swap 方法:
public static void Swap(Object object, Object object2)
{
Object spotC = object;
list.set(list.indexOf(object), object2);
list.set(list.indexOf(object2), spotC);
}
最佳答案
当i
为list.size()
时可能会出现异常,因此在then嵌套的for
循环中,当j
获取其最后一个值 i - 1
,该值等于 list.size() - 1
,使用元素Swap
进行调用/p>
list.get(j), list.get(j + 1)
换句话说
list.get(list.size() - 1), list.get(list.size())
但是您无法访问 list.get(list.size())
,因为索引无效。请记住,索引以 0
开头,以 length - 1
结尾。
关于java - Java 中数组列表出现越界异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811036/