数据结构复习 - 队列Queue
2016-07-03 11:28
351 查看
Queue 先入先出 First In First Out(FIFO)
在java中,Queue定义为接口,实现类有AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueueLinkedList是一个非常标准的队列实现。
PriorityQueue保存数据默认是根据内部的自然排序,如果指定了Comparator比较器,则会使用比较器进行排序。
基本操作
add() //入队列,超限抛出异常
offer() //入队列,超限返回false
peek() //返回当前queue中首元素,若队列为空返回null
element() //返回当前queue中首元素,若队列为空抛出异常
poll() //返回并且删除queue中首元素,若队列为空返回null
remove() //返回并且删除queue中首元素,若队列为空抛出异常
优先队列 PriorityQueue 用法
Queue<Integer> queue = new PriorityQueue<>(10, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2.compareTo(o1);//降序 } });//默认为自然顺序 System.out.println(queue.size()); //0 queue.add(2); queue.add(1); queue.add(3); System.out.println(queue.size()); //3 System.out.println(queue);
注意:sout(queue)调用的是toString方法,输出的是堆结构而不是顺序结构(debug也是),查看顺序结构应多次调用poll()方法
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树