Implementieren Von Java-Komparator

Bin ich zu schreiben versucht, einen Algorithmus, verwendet eine min-priority-queue, so dass ich schaute mich um auf google gefunden und der PriorityQueue. Es scheint, dass, um es zu verwenden, obwohl, ich werde zu müssen, um zu sagen, wie ich es will Prioritäten setzen, und dass der Weg, dies zu tun ist mit einem Komparator (ich will vergleichen die spezifischen Datenfelder von meinem "Node1" Objekte). Mehr googeln stellte die Idee der Schaffung eines neuen PCs, die Comparator implementiert, sondern überschreibt die Methode vergleichen. Was ich versuche ist diese (und andere Variationen davon):

import java.util.Comparator;

public class distComparator implements Comparator {

    @Override
    public int compare(Node1 x, Node1 y){
        if(x.dist<y.dist){
            return -1;
        }
        if(x.dist>y.dist){
            return 1;
        }
        return 0;
    }
}

Den compiler Proteste aus mehreren Gründen, einer davon ist, dass ich nicht über-geritten, die comparator-Klasse (die es sagt, ist abstrakte)

Fehler: distComparator is not abstract and does not override abstract Methode compare(Object,Object) im Komparator

Habe ich gewechselt es zu sagen "compare(object x, object y)", kümmert sich um das Problem. An diesem Punkt aber der compiler beschwert sich, dass es nicht finden können, das "dist" - variable in x-oder y - --was Sinn macht, denn Sie sind Teil meiner Node1-Klasse, nicht die Klasse des Objekts.

So, wie soll dies funktionieren? Es sollte Typ Object scheinbar, aber dann wie kann ich direkt an die richtige variable?

InformationsquelleAutor der Frage Jo.P | 2013-04-05

Schreibe einen Kommentar