以下,只考虑了几个简单方法,未考虑多线程情况。
class Queue<T> {
private ArrayList<T> list;
// 入队
public void add(T t) {
if(null == list) {
list = new ArrayList<T>();
}
list.add(t);
}
// 出队
public T remove() {
if(null != list && list.size() != 0) {
return (T) list.remove(0);
}
return null;
}
public int size() {
return list == null ? 0 : list.size();
}
}
class Stack<T> {
private ArrayList<T> list;
// 入栈
public void push(T t) {
if(null == list) {
list = new ArrayList<T>();
}
list.add(t);
}
// 出栈
public T pop() {
if(list != null && list.size() != 0) {
return list.remove(list.size() - 1);
}
return null;
}
// 查看栈顶元素
public T peek() {
if(list != null && list.size() != 0) {
return list.get(list.size() -1);
}
return null;
}
public int size() {
return list == null ? 0 : list.size();
}
}
转载于:https://www.cnblogs.com/yuanfei1110111/p/10248548.html