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线删除了。
- Java数据类型-Queue
- Queue-java
- Java: Queue
- Java: Queue
- Queue [Java]
- Queue Java
- java Queue
- 【java】Queue
- Java - Queue Stack
- java Queue的使用
- java Queue 的用法
- 解读java.util.queue
- Java Queue Example
- 学习Java: Queue
- Java文件Queue实现
- java Queue 的用法
- java 队列Queue
- Java Queue队列
- Easy-4
- hibernate的@Transient注解
- Android Studio中Gradle's dependency cache may be corrupt解决记录
- 一人千面:谈谈Go语言中的type
- IDEA 服务器搭建 IDEA授权服务器
- Java数据类型-Queue
- 第四题:根据前序和中序遍历结果重建二叉树(Arrays常用方法)
- J2EE进阶之javascript 三
- microsoft word中在公式后插入可交叉引用的公式编号
- spring OAuth 2 Developers Guide 英译汉
- ARP协议与RARP协议
- OSGI企业应用开发(九)整合Spring和Mybatis框架(二)
- 使用SpringBoot yml配置文件(三)
- Java基础——overload(重载)与overwrite(重写)的区别