Java Queue 和 Deque队列
来源:互联网 发布:手机qq2010 java版 编辑:程序博客网 时间:2024/05/21 06:53
Queue 队列 与 Deque 队列
分类 :
- 单向队列 Queue : 一端操作
- 一般FIFO
- 优先队列 和 堆栈(LIFO);
代码如下 :模拟银行的存储业务
package club.dohacker.Test;import java.util.ArrayDeque;import java.util.Queue;public class Test1 { public static void main(String[] args) { //创建一个队列 : 使用的是queue来接收 , 虽然可能子类有双向队列的方法,但是依旧只能用单向队列的方法 Queue<Request> queue = new ArrayDeque<Request>(); //开始向队列中添加元素 for(int i=0;i<10;i++){ final int a = i; queue.add(new Request("第"+a+"个人",(int)(Math.random()*100000))); } //显示队列里面的元素 Test1.displayQueue(queue); } /** * 显示队列中的所有元素 * @param queue */ public static void displayQueue(Queue<Request> queue){ Request temp = null; while((temp = queue.poll())!=null){ System.out.println(temp.toString()); } }}class Request{ private String name; private double mony; public Request(String name,double mony){ this.name = name; this.mony = mony; } public String toString(){ return "姓名 : "+this.name+" 存款 :"+this.mony; }}
- 双向队列 Deque : 两端操作
方法如下 :
代码如下
package club.dohacker.Test;import java.util.ArrayDeque;import java.util.Deque;/** * 使用双向队列 * * @author Administrator * */public class Test2 { public static void main(String[] args) { Deque<String> de = new ArrayDeque<String>(); //向队列中添加元素 de.offerFirst("张三"); de.offerFirst("李四"); de.push("王五"); //开始获取队列中的元素 System.out.println(de.pollFirst()); System.out.println(de.pollFirst()); System.out.println(de.pollFirst()); }}
使用双向队列模仿栈
代码如下
package club.dohacker.Test;import java.util.ArrayDeque;import java.util.Deque;/** * 使用双向队列 * * @author Administrator * */public class Test2 { public static void main(String[] args) { Stack<String> stack = new Stack<String>(3); stack.push("asd"); stack.push("asdasd"); stack.push("asdasdasd"); stack.push("asdasdasdasdasd"); System.out.println(stack.getSize()); String temp = null; while((temp = stack.pop())!=null){ System.out.println(temp); } }}class Stack<T>{ //容纳数据元素的容器 private Deque<T> de = new ArrayDeque<T>(); private int capatity; //表示容器的大小 //默认构造 public Stack(){ this(10); //默认的栈结构大小是10 } //构造 public Stack(int capacity){ this.capatity =capacity; } /** * 压栈 * @param e * @return boolean */ public boolean push(T e){ if(this.de.size() >=this.capatity){ return false; } this.de.offerFirst(e); return true; } /** * 弹栈 : * @return */ public T pop(){ if(this.de.size() == 0 ){ return null; } return de.pollFirst(); } /** * 获取栈的元素 * @return */ public T getTop(){ if(this.de.size() == 0 ){ return null; } return de.peekFirst(); } public int getSize(){ return this.de.size(); }}
阅读全文
0 0
- Java Queue 和 Deque队列
- Java队列Queue、双端队列Deque
- java队列Queue、双端队列Deque
- 队列queue和deque和priority_queue
- Java中的queue和deque
- Java中的queue和deque
- java的queue和deque
- Java 队列 Queue、Deque、AbstractQueue 源码分析
- java队列(queue & deque)方法简介
- Queue与Deque队列和自定义堆栈
- Java集合之Queue和Deque接口
- STL容器--顺序容器-队列queue和deque
- 队列的Queue接口和Deque接口的方法概述
- 队列中的Queue与Deque
- 阻塞队列Queue/Deque/condition
- 【java】队列、优先队列、双端队列Deque、链表LinkedList、阻塞队列(Blocking queue)
- Queue和Deque
- c++ queue 和 deque
- Java垃圾回收
- SpringBoot+Maven项目实战(1):新建Maven项目
- ICPC北京网络赛-Minimum
- 文件对话框
- shell 快捷键 超提高命令行,输入效率
- Java Queue 和 Deque队列
- 双二极管钳位电路的原理
- 684. Redundant Connection
- Node.js读写中文内容文件操作
- 2017年全国大学生电子设计竞赛K题报告
- 683. K Empty Slots
- 【Java】:浮点型
- Longest Palindrome
- codeforces 836D(思维题)