java - 使用java实现排序功能

标签 java sorting

我正在编写一个java应用程序。

  ArrayList<int[]> list = new ArrayList<int[]>();

  double[] array = new double[10];  

我写了一个函数来对数组进行排序,并根据数组排序对列表进行排序。 但我的功能无法正常工作。

  public void sort() {
    int n = array.length;
    for (int i = 1; i < n; i++) {
        double m = array[i];
        int[] d = list.get(i);
        int j = i - 1;
        while ((j >= 0) && (array[j] > m))
        {
            array[j+1] = array[j--];
            list.set(j+1, list.get(j--));
        }
        array[j+1]=m;
        list.set(j+1, d);
    }
}

它有 java.lang.ArrayIndexOutOfBoundsException 行:

          list.set(j+1, list.get(j--));

如何解决这个问题并根据数组的排序对列表进行排序?

最佳答案

i==1时,j初始值为0。

假设array[0] > array[1],进入if block ,之后:

array[j+1] = array[j--];

j == -1,所以你不能用它来索引list。第二个减量看起来也很可疑。

关于java - 使用java实现排序功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953790/

相关文章:

javascript - 如何按属性值对 JavaScript 中的对象数组进行排序?

c++ - 根据特定字段对结构 vector 进行排序

postgresql - Postgres 中的运算符 ~<~

java - 构建加权无向图

java - 如何计算带填充零的整数

linux - Bash 脚本 : Alphabetize strings without using -sort

c++ - 使用内置函数(或任何其他方法)在 C++ 中对二维数组进行排序?

java - 从 MySQL 数据库存储和检索 salt

java - 使用 MongoDB/Morphia(Scala 或 Java)将 LatLon 类存储为 GeoJSON

java - 如何标记文件并将数据输入到数组中?