Insertionsort verkettete Liste

babuschka

Top Contributor
Hallo zusammen,

hänge gerade an einer verketteten Liste.
Java:
public void sort(){
			Node help = first;
			while(help.getNext()!=null){
				Node insert = help.getNext();
				if(insert.getItem().compareTo(help.getItem())>0){
					help = help.getNext();
				}else{
					insert.getPrevious().setNext(insert.getNext());
					insert.getNext().setPrevious(insert.previous);
					
					if(first.getItem().compareTo(insert.getItem())>0){
						insert.setNext(first);
						insert.setPrevious(null);
						first.setPrevious(insert);
						first = insert;
					}
					Node current = first.getNext();
					while(current.getItem().compareTo(insert.getItem())<0){ // can not invoke from int to int (bei getItem)
						current = current.getNext();
					}
					insert.setNext(current);
					insert.setPrevious(current.getPrevious());
					current.getPrevious().setNext(insert);
					current.setPrevious(insert);
				}
			}
		}

Das Problem ist, dass ich immer eine Fehlermeldung bei getimtem bekomme:
can not invoke from int to primitive int

getItem() gibt einen int wert zurück.

Vielen Dank für eure Hilfe.
 
Das Problem ist, dass ich immer eine Fehlermeldung bei getimtem bekomme:
can not invoke from int to primitive int

getItem() gibt einen int wert zurück.
Kann es sein, dass noch etwas von der Fehlermeldung fehlt?

Wenn getItem() ein int liefert kann man daran weder compareTo() noch anderer Methoden aufrufen. Denn ein int ist ein Primitive und Methoden können nur an Objekten oder an Klassen aufgerufen werden.

ints kann man ganz einfach mit
Code:
<, =, >
oder einer Kombination daraus vergleichen.
 
kannst du in folgenden Code den int-Vergleich ergänzen und daraus Erkenntnisse zu deinem Programm ableiten?
Java:
public class Test {
    public static void main(String... args) {
        int a = 0;
        int b = 1;
        if (...)  {
            System.out.println("a ist kleiner als b");
        }
    }
}
 
ich dachte, dass ich mir damit den Int wert an der Stelle des Knoten hole und mit CompareTo vergleiche. Vielen Dank für deinen Test Code. Aber das grenzt schon ein wenig an Verarschung. oder?
 
wenn dir mein Beispiel zu offensichtlich vorkommt, warum stellst du dann die Frage bzw. zeigst dass du Probleme hast beim so einfachen Vergleich von ints?
ich hoffte mit diesem einfachen Programm deinen Blick auf das Wesentliche zu schärfen, eine kluge Lehr/Lernstrategie wie ich denke,
 

Neue Themen


Zurück
Oben