June 23, 2004
public class Stack {
private Object[] elements;
private int size = 0;
public Stack(int initialCapacity) {
this.elements = new Object[initialCapacity];
}
public void push(Object e) {
ensureCapacity();
elements[size++] = e;
}
public Object pop() {
if (size == 0)
throw new EmptyStackException();
return elements[--size];
}
private void ensureCapacity() {
if (elements.length == size) {
Object[] oldElements = elements;
elements = new Object[2 * elements.length + 1];
System.arraycopy(oldElements, 0, elements, 0, size);
}
}
}
September 11, 2002
du kan väl lika gärna använda en ArrayList (eller Vector) istället för en vanlig array så slipper du en del kod. du slipper kopiera över allt exempelvis, det är redan implementerat i ArrayList =)
import java.util.ArrayList;
import java.util.EmptyStackException;
public class Stack {
private ArrayList elements;
public Stack() {
this.elements = new ArrayList();
}
public void push(Object e) {
elements.add(e);
}
public Object pop() {
if (elements.isEmpty())
throw new EmptyStackException();
return elements.remove(elements.size()-1);
}
}
September 11, 2002
den gör samma sak som din kod, den är bara implementerad med en ArrayList istället för en vanlig array.
jag gav dig egentligen inte vad du ville, en kommentar på din kod. jag gav dig istället ett alternativ till koden, vilket kanske var onödigt. 🙄
läser du en kurs eller är det på eget initiativ du skriver koden?
1 Guest(s)