public class ArrayQueen {
private String[] items;
private int n = 0;
private int head = 0;
private int tail = 0;
public ArrayQueen(int capacity) {
items = new String[capacity];
n = capacity;
}
public boolean enqueue(String item) {
if (tail == n) {
if (head == 0) return false;
for (int i = head; i < tail; ++i) {
items[i-head] = items[i];
}
tail =tail-head;
head = 0;
}
items[tail] = item;
++tail;
return true;
}
public String dequeue() {
if (head == tail) return null;
String ret = items[head];
++head;
return ret;
}
public static void main(String[] args) {
ArrayQueen arrayQueen = new ArrayQueen(5);
boolean enqueue1 = arrayQueen.enqueue("1");
boolean enqueue2 = arrayQueen.enqueue("2");
boolean enqueue3 = arrayQueen.enqueue("3");
boolean enqueue4 = arrayQueen.enqueue("4");
boolean enqueue5 = arrayQueen.enqueue("5");
boolean enqueue6 = arrayQueen.enqueue("6");
System.out.println(enqueue1);
System.out.println(enqueue2);
System.out.println(enqueue3);
System.out.println(enqueue4);
System.out.println(enqueue5);
System.out.println(enqueue6);
String dequeue = arrayQueen.dequeue();
System.out.println(dequeue);
System.out.println("head:" + arrayQueen.head + "&tail:" + arrayQueen.tail);
}