在使用队列中,我们一般都会使用循环队列以保证性能 package com.yz.myqueue; public class Queue { private Integer size; private Integer front; private Integer rear; private Object[] datas; public Queue(int size){ this.size=size; this.front=-1; this.rear=-1; datas=new Object[size]; } public static void main(String[] args){ Queue qu=new Queue(2); qu.enQueue("aa"); qu.enQueue("bb"); qu.enQueue("cc"); System.out.println("出栈:"+qu.outQueue()); System.out.println("出栈:"+qu.outQueue()); System.out.println("出栈:"+qu.outQueue()); System.out.println("出栈:"+qu.outQueue()); } public void enQueue(Object data){ if(!isFull()){ if(this.isEmpty()){ front=rear=0; }else{ rear=(rear+1)%size; } System.out.println("在"+rear+"插入"+data); datas[rear]=data; }else{ System.out.println("存储己满!"); } } public Object outQueue(){ Object data; if(isEmpty()){ data= null; }else{ data=datas[front]; if(front==rear){ datas[front]=null; this.clear(); }else{ front=(front+1)%size; } } return data; } public Boolean isEmpty(){ return front==-1; } public Boolean isFull(){ return (rear+1)%size==front; } public void clear(){ front=rear=-1; } }