publicclassArrayQueue{int maxSize;//actual capacity is maxSize - 1, make an empty position as intervalint front;// point to the first positionint rear;//point to the position after the last positionint[] array;publicArrayQueue(int maxSize){this.maxSize = maxSize;
array =newint[maxSize];}publicbooleanisFull(){return(rear +1)% maxSize == front;}publicbooleanisEmpty(){return rear == front;}publicbooleanoffer(int num){if(isFull()){
System.out.println("Queue is full.");returnfalse;}
array[rear]= num;
rear++;returntrue;}publicintpoll(){if(isEmpty()){thrownewRuntimeException("Queue is Empty.");}int value = array[front];
front++;return value;}publicintpeek(){if(isEmpty()){thrownewRuntimeException("Queue is Empty.");}return array[front];}publicintsize(){return(rear + maxSize - front)% maxSize;}publicvoidprintAll(){if(isEmpty()){
System.out.println("[]");return;}
StringBuffer sb =newStringBuffer();
sb.append("[");for(int i = front; i < front +size(); i ++){
sb.append(array[i % maxSize]);
sb.append(",");}
sb.deleteCharAt(sb.lastIndexOf(","));
sb.append("]");
System.out.println(sb);}publicstaticvoidmain(String[] args){
ArrayQueue queue =newArrayQueue(4);//add data
queue.offer(1);
queue.offer(2);
queue.offer(3);
queue.printAll();
System.out.println("add to full queue.");if(!queue.offer(4)){
System.out.println("success");
queue.printAll();}
System.out.println("peek from queue.");if(queue.peek()==1){
System.out.println("success");
queue.printAll();}
System.out.println("get from queue");if(queue.poll()==1){
System.out.println("success");
queue.printAll();}
System.out.println("add to queue");
queue.offer(4);
queue.printAll();
queue.poll();
queue.poll();
queue.poll();
System.out.println("get from empty queue");try{
queue.poll();}catch(Exception e){
System.out.println(e.getMessage());}
queue.printAll();}}
public class ArrayQueue { int maxSize;//actual capacity is maxSize - 1, make an empty position as interval int front; // point to the first position int rear;//point to the position after the last position int[] array; public ArrayQue