Deque是一个具有队列和栈属性的双向队列
Quque(先进先出)
import java.util.ArrayDeque;
import java.util.Queue;
public class MyQuque {
public static void main(String[] args){
Queue<Request> queue=new ArrayDeque<>();
for(int i=0;i<10;i++){
final int num=i;
queue.offer(new Request() {
@Override
public void deposit() {
System.out.println("第"+num+"个人,办理存款业务,存款额度为:"+(Math.random()*10000));
}
});
}
dealWith(queue);
}
public static void dealWith(Queue<Request> queue){
Request req=null;
while(null!=(req=queue.poll())){
req.deposit();
}
}
}
interface Request{
void deposit();
}
Stack(先进后出)
import java.util.ArrayDeque;
import java.util.Deque;
public class MyStack<E> {
private Deque<E> container=new ArrayDeque<>();
private int cap;
public MyStack(int cap){
super();
this.cap=cap;
}
//压栈
public boolean push(E e){
if(container.size()+1>cap){
return false;
}
return container.offerLast(e);
}
public E pop(){
return container.pollLast();
}
public E peek(){
return container.peekLast();
}
public int size(){
return this.container.size();
}
}