import javax.naming.OperationNotSupportedException;
/**
* MyQueue :
*
* @author wuhuachuan712@163.com
* @date 16/12/30
*/
public class MyQueue<T> {
private Object elementData[];
private int front;
private int rear;
public MyQueue(int length){
elementData = new Object[length];
}
public T poll() throws OperationNotSupportedException {
if(front == rear){
throw new OperationNotSupportedException("queue is empty");
}
T element = (T) elementData[front];
elementData[front] = null; //help GC;
front = (front + 1) % elementData.length;
return element;
}
public void add(T element) throws OperationNotSupportedException {
if((rear + 1) % elementData.length == front){
throw new OperationNotSupportedException("queue is full");
}
elementData[rear] = element;
rear = (rear + 1) % elementData.length;
}
}