用java实现一个简单队列
【摘要】
本文demo基于数组实现,主要用来帮助理解队列先进先出的特点
public class MyArrayQueue {
//声明一个数组,int、Integer都行,这里用Integer是因为不想...
本文demo基于数组实现,主要用来帮助理解队列先进先出的特点
public class MyArrayQueue {
//声明一个数组,int、Integer都行,这里用Integer是因为不想看到int的默认值0
private Integer[] arr;
//声明一个变量index来记录当前下标
private int index = 0;
public MyArrayQueue(Integer size) {
//实例化数组时的容量
this.arr = new Integer[size];
}
public MyArrayQueue() {
//没有指定容量的话默认为5
this.arr = new Integer[5];
}
//放入元素
public void add(int p) {
arr[index++] = p;
}
//取出头部元素
public int get() {
return arr[0];
}
//取出头部元素并删除
public int getAndRemove() {
int res = this.arr[0];
//将数组元素往前平移
for (int i = 1; i < this.arr.length; i++) {
arr[i - 1] = arr[i];
}
//记得下标-1
index--;
return res;
}
//打印当前数组
public void switchArr() {
for (int i = 0; i < this.arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
测试:
public void myQueueTest(){
MyArrayQueue queue = new MyArrayQueue(8);
queue.add(1);
queue.add(3);
queue.add(5);
queue.add(7);
queue.add(9);
System.out.println(queue.getAndRemove());//取出头部元素并删除,应该返回1
System.out.println(queue.get());//这次应该返回3,因为1已经被删除了
queue.switchArr();//再来看看当前数组内元素
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
结果:
1
3
3 5 7 9 null null null null
打完收工
文章来源: huangjie.blog.csdn.net,作者:负债程序猿,版权归原作者所有,如需转载,请联系作者。
原文链接:huangjie.blog.csdn.net/article/details/114257641
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)