1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
package tim.prune.data;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/** Replacement for java.util.Stack for a LIFO stack */
public class Stack<T>
{
private final ArrayDeque<T> _queue = new ArrayDeque<>();
public void clear() {
_queue.clear();
}
public boolean isEmpty() {
return _queue.isEmpty();
}
public int size() {
return _queue.size();
}
public void add(T element) {
_queue.addLast(element);
}
public T peek() {
return _queue.peekLast();
}
public T pop() {
return _queue.removeLast();
}
public List<T> asList()
{
ArrayList<T> result = new ArrayList<>();
Iterator<T> iterator = _queue.descendingIterator();
while (iterator.hasNext()) {
result.add(iterator.next());
}
return result;
}
}
|