Sie benötigen die vergleichbare Schnittstelle
implements Comparable
das Verfahren zu implementieren, das macht die Arbeit ist
public int compareTo(Object obj)
{
}
Bitte beachten Sie, dass das Objekt oft von einer voll auf Typen ersetzt wird was in der implements-Anweisung (siehe unten) verwendet werden kann.
Ein vollständiges Beispiel ist here in the tutorial docs Hoffnung dieses
Ein vollständiges Beispiel hilft (nehmen Sie aus dem obigen Link ist wie folgt), ich habe dies geht nur für den Fall hinzugefügt der Link zu einem bestimmten Zeitpunkt
import java.util.*;
public class Name implements Comparable<Name> {
private final String firstName, lastName;
public Name(String firstName, String lastName) {
if (firstName == null || lastName == null)
throw new NullPointerException();
this.firstName = firstName;
this.lastName = lastName;
}
public String firstName() { return firstName; }
public String lastName() { return lastName; }
public boolean equals(Object o) {
if (o == null || !(o instanceof Name))
return false;
Name n = (Name) o;
return n.firstName.equals(firstName) && n.lastName.equals(lastName);
}
public int hashCode() {
return 31*firstName.hashCode() + lastName.hashCode();
}
public String toString() {
return firstName + " " + lastName;
}
public int compareTo(Name n) {
int lastCmp = lastName.compareTo(n.lastName);
return (lastCmp != 0 ? lastCmp : firstName.compareTo(n.firstName));
}
}
tot
der Client-Code aus dem Artikel ist:
import java.util.*;
public class NameSort {
public static void main(String[] args) {
Name nameArray[] = {
new Name("John", "Smith"),
new Name("Karl", "Ng"),
new Name("Jeff", "Smith"),
new Name("Tom", "Rich")
};
List<Name> names = Arrays.asList(nameArray);
Collections.sort(names);
System.out.println(names);
}
}
Hat Ihr Professor möchten Sie den Sortieralgorithmus selbst zu implementieren? –
was @joncarl sagt, ist ein guter Punkt, wenn Sie also bubblesort betrachten müssen (es ist ziemlich einfach zu implementieren, aber nicht so schnell) –
Ja, ich werde Insertion sort alg implementieren. – user1253201