就和我们现实生活中排队一样,队列就是先进先出,从队尾进,从队首出
然后使用https://blog.youkuaiyun.com/test253506088/article/details/119538593编写的动态数组来实现一个队列ArrayQueue
public class ArrayQueue<E> implements Queue<E> {
private Array<E> array;
/**
* 传入队列容量上限
*
* @param capacity
*/
public ArrayQueue(Integer capacity) {
array = new Array<E>(capacity);
}
/**
* 默认队列容量为20
*/
public ArrayQueue() {
this(20);
}
@Override
public void enqueue(E e) {
try {
array.put(e);
} catch (Exception e1) {
e1.printStackTrace();
}
}
@Override
public E dequeue() {
E e = null;
try {
e = array.getFirst();
array.deleteFirst();
} catch (Exception e1) {
e1.printStackTrace();
} finally {
return e;
}
}
@Override
public E getFront() {
E e = null;
try {
e = array.getFirst();
} catch (Exception e1) {
e1.printStackTrace();
} finally {
return e;
}
}
@Override
public Integer getSize() {
return array.getSize();
}
@Override
public Boolean isEmpty() {
return array.isEmpty();
}
@Override
public String toString() {
String buffer = "";
Integer size = array.getSize();
try {
for (Integer i = 0; i < size; i++) {
buffer += array.get(i);
if (i != size - 1)
buffer += ", ";
}
} catch (Exception e) {
e.printStackTrace();
}
// 最左侧是队列首部
return "Size:" + size + "\tArrayQueue[" + buffer + "]";
}
}