package java.util;
public
class Stack<E> extends Vector<E> {
public Stack() {
}
public E push(E item) {
addElement(item);
return item;
}
public synchronized E pop() {
E obj;
int len = size();
obj = peek();
removeElementAt(len - 1);
return obj;
}
public synchronized E peek() {
int len = size();
if (len == 0)
throw new EmptyStackException();
return elementAt(len - 1);
}
public synchronized int search(Object o) {
int i = lastIndexOf(o);
if (i >= 0) {
return size() - i;
}
return -1;
}
private static final long serialVersionUID = 1224463164541339165L;
}
Oben ist der Java-Quellcode für Stack. erkannte ich, dass es nur einen Stapel emuliert und nicht eine echte one.So meine FragenIst diese Stack- oder Stack-Emulation?
- Am I zu Recht sagen, dass dies nur eine Nachahmung des Stack ist und nicht der echte?
- Wenn ich die oben sagen kann, und ich will es von Grund auf neu bauen, wie würde ich es tun? (Arrays mit fester Größe oder Arraylist, die wiederum verwendet Liste (single/double verbunden sind)?)
Oben ist ein Link zu allen Dingen namens Stack in Grepcode. Worum fragst du eigentlich? –
'java.util.Stack' ist eine Implementierung einer Stack-Datenstruktur. Ich bin mir nicht sicher, was Sie mit "Emulation" meinen. – 4castle
Ich meine auf einer fundamentalen Ebene denke ich, dass Stacks auf Arrays laufen sollten, die wiederum auf Speicherreferenzen laufen. Die obige Klasse implementiert also Listen und Sammlungen. Daraus folgen meine obigen Fragen. – magpie