Queue 先進先出(FIFO)first in firtst out 的數據結構。
void enqueue(e) 入隊
dequeue() 出隊
getFront() 隊首
getSize() 大小
isEmpty(); 是否空
/**
* 先進先出
*
* @param <E>
*/
public class ArrayQueue<E> implements Queue<E> {
private final Array<E> eArray;
public ArrayQueue() {
this.eArray = new Array<>(10);
}
public ArrayQueue(int capacity) {
eArray = new Array<>(capacity);
}
@Override
public int getSize() {
return eArray.size();
}
@Override
public boolean isEmpty() {
return eArray.size() == 0;
}
//出隊,刪除最後一個
@Override
public E dequeue() {
return eArray.removeLast();
}
// 入隊
@Override
public void enqueue(E e) {
eArray.addLast(e);
}
//獲取隊首
@Override
public E getFront() {
return eArray.get(0);
}
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("ArrayQueue");
stringBuilder.append(" front:[");
for (int i = 0; i < eArray.size(); i++) {
stringBuilder.append(eArray.get(i));
if (i != eArray.size() - 1) {
stringBuilder.append(", ");
}
}
stringBuilder.append("] tail");
return stringBuilder.toString();
}
public static void main(String[] args) {
final ArrayQueue<Integer> integerArrayQueue = new ArrayQueue<>();
for (int i = 0; i < 10; i++) {
integerArrayQueue.enqueue(i);
System.out.println(integerArrayQueue);
if (i%3==2){
integerArrayQueue.dequeue();
System.out.println(integerArrayQueue);
}
}
}
}