用数组写一个队列。上代码
主要的功能巧在了循环数组的使用


public class RoundQueue {
    private long[] a;
    private int size;
    private int nItems;    //实际存储数量
    private int front;     //头
    private int rear;       //尾

    public  RoundQueue(int maxSize){
        this.size=maxSize;
        a=new long [size];
        front=0;
        rear=-1;
        nItems=0;
    }   //循环数组实现
    public void insert(long value){
        //入队
        if(isFull()){
            System.out.println("队列已满");
            return;
        }
        rear = ++rear%size;   //如果为0   ,则数组满了。就循环到0处
        a[rear]=value;
        nItems++;
    }
    public long remove(){
        if(isEmpty()){
            System.out.println("队列为空");
            return 0;
        }
        nItems--;
        front=front%size;
        return a[front++];
    }
    public void display()
    {
        if(isEmpty()){
            System.out.println("队列为空");
            return;
        }
        int item=front;
        for (int i = 0; i <nItems ; i++) {
            System.out.println(a[item++ % size]);
        }
    }

   public long peek(){
        if(isEmpty()){
            System.out.println("队列为空");
        }
        return a[front];
   }
    private boolean isFull() {
        return (nItems==size);
    }
    private boolean isEmpty() {
        return (nItems==0);
    }

}

个人体会:在写代码的过程中,主要的困难在于,找不到适当的约束条件……菜鸟一只,继续加油