Java数据类型-Queue

来源:互联网 发布:紫萱和徐长卿知乎 编辑:程序博客网 时间:2024/06/10 09:16

Queue(Deque)是队列模式的数据类型,是符合先进先出的(frist in frist out),队列通常情况下不能随机访问。
实现Deque接口的方式有三种:
PriorityQueue:元素存储的顺序不是按照添加的存储,而是按照元素大小的顺序存储,不允许有null元素插入,
PriorityQueue有两种排序方式:
1,自然排序:采用自然排序的PriorityQueue集合中的元素必须实现Comparator接口,而且应该是一个类的多个实例,否则可能导致ClassCastException异常。
2,定制排序:创建PriorityQueue队列时,传入一个Comparable对象,该对象负责对所有队列中的所有元素进行排序。采用定制排序不要求必须实现Comparator接口。

PriorityQueue pq = new PriorityQueue();        pq.offer(6);        pq.add(-3);        pq.add(20);        pq.offer(18);        //输出:[-3, 6, 20, 18]        System.out.println(pq);

ArrayDeque
Deque接口是Queue接口的子接口,它代表一个双端队列,Deque定义了一些方法:

void addFirst(Object e):   将指定元素添加到双端队列的头部。

void addLast(Object e):  将指定元素添加到双端队列的尾部。

Iteratord descendingItrator():  返回该双端队列对应的迭代器,该迭代器以逆向顺序来迭代队列中的元素。

Object getFirst():  获取但不删除双端队列的第一个元素。

Object getLast():  获取但不删除双端队列的最后一个元素。

boolean offFirst(Object e):  将指定元素添加到双端队列的头部。

boolean offLast(OBject e):  将指定元素添加到双端队列的尾部。

Object peekFirst():  获取但不删除双端队列的第一个元素;如果双端队列为空,则返回null。

Object PeekLast():  获取但不删除双端队列的最后一个元素;如果双端队列为空,则返回null。

Object pollFirst():  获取并删除双端队列的第一个元素;如果双端队列为空,则返回null。

Object pollLast():  获取并删除双端队列的最后一个元素;如果双端队列为空,则返回null。

Object pop()(栈方法):  pop出该双端队列所表示的栈的栈顶元素。相当于removeFirst()。

void push(Object e)(栈方法):  将一个元素push进该双端队列所表示的栈的栈顶。相当于addFirst()。

Object removeFirst():  获取并删除该双端队列的第一个元素。

Object removeFirstOccurence(Object o):  删除该双端队列的第一次出现的元素o。

Object removeLast():  获取并删除该双端队列的最后一个元素o。

Object removeLastOccurence(Object o):  删除该双端队列的最后一次出现的元素o。
这里写图片描述
打印结果是:
这里写图片描述
dueue.pop();删除的是先进的元素,比如上面的删除之后就把1线删除了。

0 0