/ / Sortierfunktion mit Java - Java, Sortierung

Sortierfunktion mit Java - Java, Sortierung

Ich schreibe eine Java-Anwendung.

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

double[] array = new double[10];

Ich habe eine Funktion geschrieben, um das Array und die Sortierliste basierend auf der Array-Sortierung zu sortieren. Aber meine Funktion funktioniert nicht richtig.

  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);
}
}

Es hat java.lang.ArrayIndexOutOfBoundsException in Zeile:

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

Wie kann ich das Problem lösen und die Liste basierend auf der Art des Arrays sortieren?

Antworten:

2 für die Antwort № 1

Wann i==1, j ist anfangs 0.

Angenommen array[0] > array[1], der if-Block wird eingegeben und nach:

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

j == -1, so dass Sie es nicht zum Indexieren verwenden können list. Das zweite Dekrement sieht ebenfalls verdächtig aus.


0 für die Antwort № 2

Ich denke dieser Link hat alles was du brauchst: http://www.leepoint.net/notes-java/data/arrays/70sorting.html

Im Grunde wird zum Sortieren eines Arrays die Sortiermethode java.util.Arrays verwendet und für ArrayList wird die Sortiermethode java.util.Collections verwendet.