package cn.task1; import java.util.Arrays; public class Queue { private static final int CAPACITY = 1024; private static int capacity; private static int front; private static int tail; private static Object[] array; public Queue() { this.capacity = CAPACITY; array = new Object[capacity]; front = tail = 0; } public static int getSize() { if (isEmpty()){ return 0; }else{ return (capacity + tail - front) % capacity; } } public static boolean isEmpty() { return (front == tail); } //进栈 public static void enqueue(Object element) throws ExceptionQueueFull { if (getSize() == capacity - 1){ throw new ExceptionQueueFull("Queue is full"); } array[tail] = element; tail = (tail + 1) % capacity; } //出栈 public static Object dequeue() throws ExceptionQueueEmpty { Object element; if(isEmpty()){ throw new ExceptionQueueEmpty("Queue is empty"); } element = array[front]; front = (front + 1) % capacity; return element; } public static Object frontElement() throws ExceptionQueueEmpty { if(isEmpty()){ throw new ExceptionQueueEmpty("Queue is empty"); } return array[front]; } public static void getAllElements() { Object[] arrayList = new Object[getSize()]; for(int i=front,j=0;j<getSize();i++,j++){ arrayList[j] = array[i]; } System.out.println("All elements of queue: "+ Arrays.toString(arrayList)); } public static void main(String[] args) throws ExceptionQueueFull, ExceptionQueueEmpty { Queue queue = new Queue(); System.out.println(queue.isEmpty()); queue.enqueue("1"); queue.enqueue("2"); queue.enqueue("3"); queue.enqueue("4"); queue.enqueue("5"); System.out.println(queue.getSize()); System.out.println(queue.dequeue()); System.out.println(queue.getSize()); System.out.println(queue.isEmpty()); System.out.println(queue.frontElement()); queue.getAllElements(); } } class ExceptionQueueEmpty extends Exception { public ExceptionQueueEmpty() { } public ExceptionQueueEmpty(String mag) { System.out.println(mag); } } class ExceptionQueueFull extends Exception { public ExceptionQueueFull() { } public ExceptionQueueFull(String mag) { System.out.println(mag); } }