Hey,
ich habe mir einen LinkedListStack programmiert, aber dort funktioniert der Iterator nicht richtig.
Da ich in der main() ja einen LinkedListStack of Integer erstelle, sollte doch eigentlich
in der foreach-Schleife Integer stehen können, und nicht nur Object. Aber wenn ich Integer reinschreibe, krieg ich die Fehlermeldung Incompatible Types. Aber warum? Ich hab wohl irgendwas am Iterator falsch gemacht. Danke schonmal für die Antworten
ich habe mir einen LinkedListStack programmiert, aber dort funktioniert der Iterator nicht richtig.
Code:
import java.util.Iterator;
import java.util.NoSuchElementException;
public class LinkedListStack<E> implements Iterable{
private Node first;
private int N;
private class Node{
E item;
Node next;
}
public boolean isEmpty(){
return (first == null);
}
public E testIterator(){
for(Node x = first; x != null; x = x.next){
System.out.println(x.item);
}
return null;
}
public int size(){
return N;
}
public void push(E item){
Node oldfirst = first;
first = new Node();
first.item = item;
first.next = oldfirst;
N++;
}
public E pop(){
E item = first.item;
first = first.next;
N--;
return item;
}
public Iterator<E> iterator() { return new ListIterator(); }
private class ListIterator implements Iterator<E> {
private Node current = first;
public boolean hasNext() { return current != null; }
public void remove() { throw new UnsupportedOperationException(); }
public E next() {
if (!hasNext()) throw new NoSuchElementException();
E item = current.item;
current = current.next;
return item;
}
}
public static void main(String[] args){
LinkedListStack<Integer> l = new LinkedListStack<Integer>();
l.push(34);
l.push(88);
for(Object z : l)
System.out.println(z);
}
}
Da ich in der main() ja einen LinkedListStack of Integer erstelle, sollte doch eigentlich
in der foreach-Schleife Integer stehen können, und nicht nur Object. Aber wenn ich Integer reinschreibe, krieg ich die Fehlermeldung Incompatible Types. Aber warum? Ich hab wohl irgendwas am Iterator falsch gemacht. Danke schonmal für die Antworten