数组实现不超过固定大小的队列(环形数组)

package arithmetic;

public class MyQueue {
    private int[] arr;
    private int pushi;
    private int polli;
    private int size;
    private final int limit;

    public MyQueue(int limit) {
        arr = new int[limit];
        pushi = 0;
        polli = 0;
        size = 0;
        this.limit = limit;
    }

    public void push(int value) {
        if (size == limit) {
            throw new RuntimeException("栈满了,不能再加了");
        }
        size++;
        arr[pushi] = value;
        pushi = nextIndex(pushi);
    }

    public int pop() {
        if (size == 0) {
            throw new RuntimeException("栈空了,不能再拿了");
        }
        size--;
        int res = arr[polli];
        polli = nextIndex(polli);
        return res;
    }

    private int nextIndex(int i) {
        return i < limit - 1 ? i + 1 : 0;
    }
}
原文地址:https://www.cnblogs.com/yanghailu/p/12774593.html