package yuwei.com;
import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.PriorityQueue;
/*
* 接口:
* Queue
* 类:
* PriorityQueue:一个比较标准的队列实现类
*
* Deque接口是Queue的子接口
* 该接口的实现类ArrayDeque
*
* 实现类LinkedList是一个list集合,可以根据索引
* 随机访问集合中的元素,而且实现了Deque接口,因此
* 可以当成栈是使用,也可以当成队列使用
* */
public class QueueDemo {
public static void main(String[] args) {
PriorityQueue pq = new PriorityQueue();
//将指定元素加入到此队列的尾部
//当使用有容量限制的时候此方法一般比add()好
pq.offer(6);
pq.offer(-1);
pq.offer(2);
pq.offer(4);
pq.offer(-3);
pq.offer(5);
pq.offer(4);
pq.offer(5);
System.out.println(pq);
//访问队列中的第一个元素并删除该元素如果此队列为null
//则返回null
System.out.println(pq.poll());
System.out.println(pq);
//访问队列中的第一个元素但不删除该元素如果此队列为null
//则返回null
System.out.println(pq.peek());
System.out.println(pq);
//ArrayDeque当成栈来使用
ArrayDeque stack = new ArrayDeque();
//依此将元素入栈
stack.push("aaaaa");
stack.push("abbbb");
stack.push("acccc");
System.out.println(stack);
//访问第一个元素但是不将其出栈
System.out.println(stack.peek());
System.out.println(stack);
//出栈
System.out.println(stack.pop());
System.out.println(stack);
LinkedList d = new LinkedList();
d.offer("ccccccc");
d.push("ddddddd");
d.offerFirst("eeeeeee");
//以List方式(按索引访问的方式来遍历集合元素);
for(int i = 0; i< d.size();i++) {
System.out.println("遍历中:" + d.get(i));
}
//访问但并不删除栈顶元素
System.out.println(d.peekFirst());
System.out.println(d);
//将栈顶元素删除
System.out.println(d.pop());
System.out.println(d);
}
}
以上来自疯狂Java讲义自学笔记