In Java habe ich eine ArrayList von mireigene (implementiert) Ich habe eine Sortiermethode, also brauche ich die "CompareTo" -Methode. Deshalb habe ich Comparable implementiert und die Klasse abstrakt gemacht. Aber wenn ich arraylist von main verwende, muss ich compare to method implementieren. Aber ich kann nicht verstehen, wie ich das implementieren kann (ich habe eine Einschränkung, zum Beispiel wenn ich eine Arrayliste der "order" -Klasse habe, die ich in vergleichbarer Klasse nicht implementieren kann )
Anordnungsliste
public abstract class ArrayList<T> implements Comparable
innerhalb Sortierfunktion
Comparable left=(Comparable)L[i];
Comparable right=(Comparable)R[j];
for(int k=start;k<=end;k++)
{
if(left.compareTo(right)<=0)
{
array[k]=L[i];
i++;
left=(Comparable)L[i];
}
Vom Haupt
ArrayList<Order> order = new ArrayList<Order>() {
@Override
public int compareTo(Object o) {
if(this)// but this main is not order class this is arraylist class
return 0;
}
};
Antworten:
1 für die Antwort № 1Warum tut dein ArrayList
implementiert Comparable
? Möchten Sie 2 Listen vergleichen? Wenn Sie die Elemente der Liste vergleichen oder sortieren möchten, sollten die Elemente Vergleichbar sein, nicht jedoch die Liste selbst.
Sie können sich auch folgendes Problem ansehen: So verwenden Sie Comparator in Java zum Sortieren
Sie müssen dann ein implementieren Comparator
für deine Klasse Order
(nicht die Schnittstelle Comparable
)