javaprogrammeringsproblem

moiran

Trådstartare
Jag har kört fast. Jag lyckas inte lista ut var det blir fel någonstans. Jag försöker bygga en sorterad enkellänkad lista, och det är när jag försöker bygga metoden som lägger till element som allt går åt fanders. jag klipper in koden nedanför. 'head' är listans början.

Problemet uppstår vid while-loopen. Varför blir aldrig
Kod:
nextnext != null
falskt? Det ÄR ju bevisligen null (hm, eller jag tycker iaf att den borde vara) när "next" pekar på sista elementet, och då får jag ju också nullPointerException på den andra delen av while-vilkoret där jag testar nextnext's element. :confused:

Kod:
    public boolean add(E element) {
        if ( element == null )
	       throw new NullPointerException();
        else {
	        if (head != null) {
		        Entry next = head;
		        Entry nextnext = next.next;
		        while (nextnext != null && element.compareTo(nextnext.element) < 0) {
		        	next = nextnext;
		        	nextnext = next.next;
		        }
		        next.next = new Entry(element,nextnext);
		        return true;
	        } 
	        else {
	        	head = new Entry(element, null);
	        	return true;
	        }
	    }
    } // add
 
Senast ändrad:
Sv: javaprogrammeringsproblem

Får inga fel när jag kör den koden. Säker på att felet inte är i implementation av compareTo i klassen E?
 
Sv: javaprogrammeringsproblem

Syns att det var så länge sen jag programmerade JAVA.
Kommer inte ihåg sedan ska jag erkänna det är sent men jag förstår inte problemet.
 
Sv: javaprogrammeringsproblem

Kompilerar eller kör?
Och får du att nextnext är null då next står på sista elementet i listan? När jag tar bort det andra villkoret i while-loopen får jag helt enkelt en oändlig loop när jag bara har ett enda element i listan. Det är ju inte min mening, jag vill ju inte att den går in i while-loopen ett enda varv om det bara finns ett element i listarn (dvs då nextnext inte pekar på något - eller åtminstone inte borde peka på något)...
 
Sv: javaprogrammeringsproblem

Problemet är som jag svarade Stalker. Har jag bara ett element i listan (som är mindre än det jag vill sätta in) får jag en oändlig loop i ovanstående kod. Det var ju inte min plan... ;)
 
Sv: javaprogrammeringsproblem

Dock är ju ovanstående kod dessutom felaktig i det hänseendet att den aldrig kommer sätta in någonting före första elementet. *fixa*
 
Sv: javaprogrammeringsproblem

Ett tips är att använda Eclipse när du programmerar java. Det kompilerar konstant så man kan hela tiden se eventuella fel man gör, utan att separat behöva kompilera och få alla felen på en gång. Vi skulle aldrig orkat göra servern i java om vi inte haft en sådan ordentlig utvecklingsmiljö.
 

Liknande trådar

J
IT & mobiler Jag håller på att ska göra en webbplats med ett enkelt bildspel, där användaren kan välja bilder med checkboxes och sedan, genom att...
Svar
2
· Visningar
1 059
Senast: Fanzia
·

Bukefalos, Hästnyheter, Radannonser

Allmänt, Barn, Dagbok

Hund, Katt, Andra Djur

Hästrelaterat

  • Födda 2022
  • Hindertyper på hopptävling
  • Dressyrsnack 17

Omröstningar

  • Tvättstugedrama
Tillbaka
Upp