队列是一种数据结构。类似于栈,不同的是在队列中第一个插入的数据项会最先别移除。也就是先进先出
最大空间。元素大小,队头,队尾。
下面我们来编写个MyQueue类
package com.tankiy.array;
/**
* 队列
* @author Tankiy
*
*/
public class MyQueue {
/**
* 队列的最大值
*/
private int maxSize;
/**
* 队头
*/
private int head;
/**
* 队尾
*/
private int end;
/**
* 元素大小
*/
private int elements;
private int array[];
public MyQueue(int maxSize) {
this.maxSize = maxSize;
array = new int[maxSize];
end = -1;
head = 0;
elements = 0;
}
/**
* 向对列中插入元素
* @param value
*/
public void add(int value) {
array[++end] = value;
elements++;
}
/**
* 移除队列的元素
*/
public int remove() {
elements--;
return array[head++];
}
/**
* 判断队列是否为空
* @return
*/
public boolean isEmpty() {
return elements == 0;
}
/**
* 判断队列是否已满
* @return
*/
public boolean isFull() {
return elements == maxSize - 1;
}
}
用Juint4来进行测试
package com.tankiy.array;
import org.junit.Test;
public class MyQueueTest {
@Test
public void queueTest() {
//定义队列大小
MyQueue queue = new MyQueue(5);
//向队列中插入元素
queue.add(2);
queue.add(5);
queue.add(1);
queue.add(8);
queue.add(0);
//循环移除直到队列为空
while(!queue.isEmpty()) {
System.err.println(queue.remove());
}
}
}
输出的结果就是先插入的先输出。这就是队列