Permalänk

Java Iterator hjälp

Hejsan!
Jag håller på mig och lär mig java-programmering och har nu stött på Iterator där jag har fastnat på ett problem som jag inte kommer någon vart.
Det är så att jag skall hitta max-värdet(maxElement) med hjälp av en iterator i en ArrayList(E). För att hålla reda på max-värdet skall jag använda mig av compareTo metoden .Jag har skrivit en kod men får fel:(
Koden ser ut en enligt följande:

private E findMax(){
Iterator<E> iter = set.iterator();
while(iter.hasNext()){
E temp = iter.next();
if(temp.compareTo(maxElement) > 0){
maxElement = temp;
}
}
return maxElement;
}

Någon snäll själ som skulle kunna hjälpa mig på traven eller påpeka vad jag gör för fel?

Tack på förhand:)

Permalänk
Medlem

Vad får du för fel?

Kan inte direkt se något fel i koden men har inte stenkoll på vilka anrop som ska göras för att få iteratorn, brukar använda for each till dessa problem.

Det jag spontant tänker på är var du initierar maxElement och set, som jag tolkar koden är maxElement satt till null då metoden anropas och därav kommer din compareTo generera ett NullPointerException, detta kan till exempel lösas med att maxElement tilldelas det första objektet från iteratorn och loopen körs efter det är gjort

Permalänk
Medlem
Skrivet av UberPro90:

Hejsan!
Jag håller på mig och lär mig java-programmering och har nu stött på Iterator där jag har fastnat på ett problem som jag inte kommer någon vart.
Det är så att jag skall hitta max-värdet(maxElement) med hjälp av en iterator i en ArrayList(E). För att hålla reda på max-värdet skall jag använda mig av compareTo metoden .Jag har skrivit en kod men får fel:(
Koden ser ut en enligt följande:

private E findMax(){ Iterator<E> iter = set.iterator(); while(iter.hasNext()){ E temp = iter.next(); if(temp.compareTo(maxElement) > 0){ maxElement = temp; } } return maxElement; }

Någon snäll själ som skulle kunna hjälpa mig på traven eller påpeka vad jag gör för fel?

Tack på förhand:)

Det tydligaste problemet är att du inte har deklarerat maxElement

Visa signatur

Kom-pa-TI-bilitet