Hier mal die Aufgabenstellung:
Erweitern Sie die von Ihnen programmierte Klasse Stack wie folgt:
Die Klasse Stack soll einem generischen Typ entsprechen ( class Stack<T> ...)
Die Klasse Stack soll mit einer for-Each Schleife durchlaufen werden können
Die Klasse muss somit das Interface Iterable implementieren
Somit muss eine Methode iterator():Interator implementiert werden, welche einen Iterator über den Stack zurückliefert (Methoden: next(), hasNext()
Ist euer Stack korrekt Programmiert, so sollte der folgende Programmcode in einer Main-Methode funktionieren:
MyStack<String> s = new MyStack<String>(100);
for (String t : s) {
sout(t);
}
Den Stack generisch zu machen hab ich schon erledigt:
Stack:
Wie man sehen kann habe ich denn Iterator schon implementiert, aber ich verstehe nicht ganz was ich jetzt mit den Methoden next(), hasNext() machen soll und wie ich das jetzt in meinem Stack einbauen soll damit ich das ganze dann mit einer for each Schleife durchlaufen kann, ich hoffe Ihr könnt mir weiter helfen.
MFG,...
Alexander
Erweitern Sie die von Ihnen programmierte Klasse Stack wie folgt:
Die Klasse Stack soll einem generischen Typ entsprechen ( class Stack<T> ...)
Die Klasse Stack soll mit einer for-Each Schleife durchlaufen werden können
Die Klasse muss somit das Interface Iterable implementieren
Somit muss eine Methode iterator():Interator implementiert werden, welche einen Iterator über den Stack zurückliefert (Methoden: next(), hasNext()
Ist euer Stack korrekt Programmiert, so sollte der folgende Programmcode in einer Main-Methode funktionieren:
MyStack<String> s = new MyStack<String>(100);
for (String t : s) {
sout(t);
}
Den Stack generisch zu machen hab ich schon erledigt:
Stack:
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mystack;
import java.util.Iterator;
/**
*
* @author Alexander
*/
public class Stack <T> implements Iterable{
T []s;
int length;
@Override
public Iterator iterator() {
throw new UnsupportedOperationException("Not supported yet.");
}
public Stack (int size){
s = (T[]) new Object [size];
length = 0;
}
public void push (T x){
s[length++] = x;
}
public T pop(){
return s[--length];
}
}
Wie man sehen kann habe ich denn Iterator schon implementiert, aber ich verstehe nicht ganz was ich jetzt mit den Methoden next(), hasNext() machen soll und wie ich das jetzt in meinem Stack einbauen soll damit ich das ganze dann mit einer for each Schleife durchlaufen kann, ich hoffe Ihr könnt mir weiter helfen.
MFG,...
Alexander