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块,然后输入:

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


j == -1,因此您不能使用它为list编制索引。第二个减量看起来也可疑。

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

相关文章:

java - 如何在Oracle(长数据)中将长html,图像和长字符串作为单列插入?

java - 我如何让Maven从Apache Tuscany中找到org.osoa.sca.annotations.Remotable?

java - 如何将lucene36转移到lucene 40

javascript - 按字母顺序对表格行进行排序

javascript - 使用从服务器动态填充的信息对 HTML 表进行排序

java - 为什么用浮点(或 double )数字除以零不会抛出 java.lang.ArithmeticException :/by zero in Java

java - 当浏览器/标签页获得焦点时,将焦点恢复到Java Applet

php - 使用同位素按日期排序,分解为日/月/年

java - 如何考虑字符串中的数字对字符串进行排序?

java - 生成随机数,将其添加到数组中,然后使用冒泡排序对它们进行排序