Queue集合
Queue接口中定义了如下几个方法:
- void add(Object e);
- boolean offer(Object e );
- Object element();
- Object peek();//获取且不删除该队头元素
- Object poll();//获取且删除该队头元素
- Object remove();//获取且删除队头元素
PriorityQueue实现类
PriorityQueue保存队列元素的顺序并不是按加入队列的顺序,而是按照队列元素的大小进行重新排序,因此每次取出的元素都是队列中的最小元素
PriorityQueue不允许插入null元素
PriorityQueue两种排序:自然排序,定制排序
Deque接口与ArrayDeque接口
Deque代表一个双端队列,既可以当作队列使用,也可以当作栈使用
方法:
- void addFirst(Object e);
- void addLast(Object e);
- boolean offerFirst(Object e);
- boolean offerLast(Object e);
- Iterator descendingIterator();//该迭代器以逆向顺序来迭代队列中的元素
- Object getFirst();
- Object getLast();
- Object peekFirst();
- Object peekLast();
- Object pollFirst();
- Object polLast();
- Object pop();(栈方法)
- void push(Object e);(栈方法)
- Object removeFirst)_;
- Object removeFirstOccurrence(Object o);
- Object removeLast();
- boolean removeLastOccurrence(Object o);
ArrayDeque是Deuqe的实现类,它是基于数组实现的
LinkedList实现类
是根据索引来随机访问集合中的元素,也实现了Deque接口