Die Beschreibung der Arrays -Klasse von Java API lautet: Diese Klasse enthält verschiedene Methoden zur Manipulation von Arrays (z. B. Sortieren und Suchen).
1. Sortieren Sie Arrays grundlegender Datentypen
veranschaulichen:
(1) sort () in der Arrays -Klasse verwendet "abgestimmte Schnellsortiermethode";
(2) Beispiele für Arrays von Basisdatentypen wie int [], double [], char [] usw. liefert die Arrays -Klasse nur die standardmäßige Anordnung der Aufstiegsbestellanordnung und liefert nicht die entsprechende Methode für absteigende Ordnung.
(3) Um die Arrays grundlegender Typen in absteigender Reihenfolge zu sortieren, müssen Sie diese Arrays in entsprechende eingekapselte Klassenarrays wie Ganzzahl [], double [], Zeichen [] usw. umwandeln, um diese Klassenarrays zu sortieren. (Tatsächlich ist es besser, zuerst aufsteigender Reihenfolge zu sortieren und sie selbst in die Reihenfolge zu verwandeln).
Sortieren Sie Arrays in standardmäßiger Aufstiegsreihenfolge
Funktionsprototyp: statische Hohlraumsorte (int [] a) Sortieren Sie das angegebene Int-Typ-Array in aufsteigender Reihenfolge.
statische Hohlraumsorte (int [] a, int vonIndex, int toIdex) sortieren den angegebenen Bereich eines Arrays von Int -Typen in aufsteigenden Zahlen.
Codebeispiel:
Die Codekopie lautet wie folgt:
Import Java.util.Arrays;
öffentliche Klasse ArraysSort_11 {
öffentliche statische Leere Main (String args [])
{
int [] a = {1,4, -1,5,0};
Arrays.sort (a);
// Der Inhalt von Array A [] wird {-1,0,1,4,5}
für (int i = 0; i <A.Length; i ++)
System.out.print (a [i]+"");
}
}
2. Sortieren Sie die Daten von zusammengesetzten Datentypen
Funktionsprototyp:
(1) Public Static <T> void -Sortierung (t [] A, Vergleicher C) Sortieren Sie das angegebene Objektarray nach der vom angegebenen Vergleicher erzeugten Reihenfolge.
(2) öffentliche statische <t> void -Sortierung (t [] a, int vonIndex, int toIdex, Vergleicher c) Sortieren Sie den angegebenen Bereich des angegebenen Objektarrays gemäß der durch den angegebenen Vergleich erzeugten Reihenfolge.
Hinweis: Diese beiden Sortieralgorithmen sind "Tuned Merge Sorting" -Algorithmus.
Codebeispiel:
Die Codekopie lautet wie folgt:
Paket AA;
Import Java.util.Arrays;
Java.util.comParator importieren;
öffentliche Klasse Arraysort {
Punkt [] arr;
Arraysort () {
arr = neuer Punkt [4];
für (int i = 0; i <4; i ++)
arr [i] = neuer Punkt ();
}
public static void main (String [] args) {
Arraysort sort = new Arraysort ();
sort.arr [0] .x = 2; sort.arr [0] .y = 1;
sort.arr [1] .x = 2; sort.arr [1] .y = 2;
sort.arr [2] .x = 1; sort.arr [2] .y = 2;
sort.arr [3] .x = 0; sort.arr [3] .y = 1;
Arrays.sort (Sort.arr, New MyComprator ());
für (int i = 0; i <4; i ++) // Ausgabe -Sortierungsergebnis
System.out.println ("("+sort.arr [i] .x+","+sort.arr [i] .y+")");
}
}
Klassenpunkt {
int x;
int y;
}
// Vergleicher sind X -Koordinaten von klein nach groß;
Klasse MyComprator implementiert den Vergleich {
public int compare (Object arg0, Object arg1) {
Punkt t1 = (Punkt) arg0;
Punkt t2 = (Punkt) arg1;
if (t1.x! = t2.x)
return t1.x> t2.x? 1: -1;
anders
return t1.y> t2.y? 1: -1;
}
}