java - Java 中数组列表出现越界异常错误

标签 java sorting arraylist indexoutofboundsexception bubble-sort

我正在尝试为 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);
}

最佳答案

ilist.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/

相关文章:

java - 更新多行 - Hibernate

python - 按属性 ip 对类实例列表进行排序

arrays - 给定数组部分已排序部分未排序,如何找到特定元素?

java - 从 YAML 文件中获取 Integer[] 而不是 ArrayList<Integer>

java - 如何将双数组列表与字符串数组列表合并

java - 为独立应用程序绑定(bind)一个 java swing gui 和 c++ 后端,它们形成两个不同的项目

java - 为什么java方法返回相同的结果?

java - Spring Data JPA 存储库 findAll() 空指针

sorting - Kubernetes:按年龄升序显示 Pod

java - 保存选定的 JTable 行并在另一个 JTable 中显示它们(在另一个 JFrame 中)