创建自己的队列Queue底层实现利用数组
2015-10-11 12:32
676 查看
package queuearray;
import java.util.ArrayList;
import java.util.List;
public class QANode<T> {
private List<T> list;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public QANode(){
this.list=new ArrayList<T>();
}
public QANode(List<T> list, int front, int rear) {
super();
this.list = list;
}
}
package queuearray;
public class MyQueueByArray<T> {
private QANode<T> queue;
public QANode<T> getQueue() {
return queue;
}
public void setQueue(QANode<T> queue) {
this.queue = queue;
}
public MyQueueByArray(){
this.queue=new QANode<T>();
}
public MyQueueByArray(QANode<T> queue) {
super();
this.queue = queue;
}
//队列是否为空
public boolean isEmpty(){
return queue.getList().isEmpty();
}
//插入元素
public void offer(T data){
queue.getList().add(data);
}
//删除元素
public T take(){
return queue.getList().remove(0);
}
//队列中元素的个数
public int size(){
return queue.getList().size();
}
//将队列清除
public void clear(){
queue.getList().clear();
}
/**
* @param args
*/
public static void main(String[] args) {
MyQueueByArray<String> queue=new MyQueueByArray<String>();
queue.offer("a");
queue.offer("b");
queue.offer("c");
// queue.clear();
System.out.println(queue.size());
while(!queue.isEmpty()){
String v=queue.take();
System.out.print(v+" ");
}
System.out.println();
System.out.println(queue.size());
}
}
import java.util.ArrayList;
import java.util.List;
public class QANode<T> {
private List<T> list;
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public QANode(){
this.list=new ArrayList<T>();
}
public QANode(List<T> list, int front, int rear) {
super();
this.list = list;
}
}
package queuearray;
public class MyQueueByArray<T> {
private QANode<T> queue;
public QANode<T> getQueue() {
return queue;
}
public void setQueue(QANode<T> queue) {
this.queue = queue;
}
public MyQueueByArray(){
this.queue=new QANode<T>();
}
public MyQueueByArray(QANode<T> queue) {
super();
this.queue = queue;
}
//队列是否为空
public boolean isEmpty(){
return queue.getList().isEmpty();
}
//插入元素
public void offer(T data){
queue.getList().add(data);
}
//删除元素
public T take(){
return queue.getList().remove(0);
}
//队列中元素的个数
public int size(){
return queue.getList().size();
}
//将队列清除
public void clear(){
queue.getList().clear();
}
/**
* @param args
*/
public static void main(String[] args) {
MyQueueByArray<String> queue=new MyQueueByArray<String>();
queue.offer("a");
queue.offer("b");
queue.offer("c");
// queue.clear();
System.out.println(queue.size());
while(!queue.isEmpty()){
String v=queue.take();
System.out.print(v+" ");
}
System.out.println();
System.out.println(queue.size());
}
}
相关文章推荐
- win10 Build 10558预览版《微软电话》应用曝光 内附下载
- 在storyBoard中添加UIScrollView并添加相应的约束
- UE4蓝图案例:制作实时反射镜面材质
- android 5.0UI特效
- poj 2778 DNA Sequence 【AC自动机 + 矩阵加速】
- 《腾讯网UED体验设计之旅》
- easyui-datagrid行数据field原样输出html标签
- lintcode 容易题:Unique Characters 判断字符串是否没有重复字符
- 【小白装系统】——硬盘分区表格式GUID和MBR知识普及
- UITableView自定义cell更换选中的背景色
- 【IOS 开发学习总结-OC-41】★★ios开发——代码控制 UI 界面与 UI 控件的自定义
- iOS-UITableViewController-cellForRowAtIndexPath不被调用
- UIStoryboardSegue
- [UE]《Microinteractions》
- [UE]《设计师要懂心理学》简要
- [UE]《用户体验要素》笔记与所想
- java中Queue队列的使用和介绍(2)之PriorityQueue
- GUID和INT两种数据类型做主键的比较
- hdu 4424 Conquer a New Region 并查集+思维
- 如何把GPUImage加入到Xcode工程中