Hi, ich hab meine eigen Collection erzeugt und auch ein Iterator. Jedoch mein Programm funtzt nicht so ganz. Es wird nicht das letzte Element zurückgegeben. Ich hab schon ne Idee, woran das liegt jedoch hab noch keine Lösung des Problems gefunden.
Ich komme einfach nicht weiter, demzufolge bitte ich euch um ne kleine Hilfe;
Java:
import java.util.*;
public class Apply {
Apply(){
MyList<String> liste = new MyList<String>("S");
liste.add("B");
liste.add("C"); //add all elements
liste.add("D");
Iterator<String> iter = liste.iterator();
;
while(iter.hasNext()){
System.out.println(iter.next()); //show all elements
} //das letzte Element wird nicht angezeigt
}
public static void main(String[] args){
new Apply();
}
}
Java:
import java.util.Iterator;
public class MyList<E> {
private E elem;
private MyList<E> next;
MyList(E e){
elem = e;
}
MyList(){}
public void add(E e){ // Elemente werde hinzugefügt
if(next == null)
next = new MyList<E>(e);
else next.add(e);
}
Iterator<E> iterator() {
return new MyIterator<E>(this);
}
E getElem() {
return elem;
}
MyList<E> getNext() { //Methode, die man später in der Klasse MyIterator braucht
return next;
}
MyList<E> getNext2(){
return this;
}
}
Java:
import java.util.Iterator;
public class MyIterator<E> implements Iterator<E> {
MyList<E> list;
MyIterator(MyList<E> evList) {
list = evList;
}
public boolean hasNext(){
return list.getNext() !=null; //Das Problem ist warscheinlich hier
}
@Override
public E next() {
E element = list.getElem();
list = list.getNext();
return element;
}
@Override
public void remove() {
}
}
Ich komme einfach nicht weiter, demzufolge bitte ich euch um ne kleine Hilfe;