当我编译时,它说在deque java中找不到符号,我也不知道为什么pushleft包含这行left=(left+;1)%queue.length;

当我编译时,它说在deque java中找不到符号,我也不知道为什么pushleft包含这行left=(left+;1)%queue.length;,java,object,symbols,deque,Java,Object,Symbols,Deque,当我运行这个时,我不知道为什么它给了我那个 java:115:错误:找不到符号 ab.是空的(); ^ 符号:方法isEmpty() 位置:DequeCyclic[]类型的变量ab 1错误 我还想知道为什么左推有这条线 左=(左+1)%queue.length 您的问题在于: DequeCyclic[]ab=新的DequeCyclic[10] 这条线是干什么的? 它初始化一个名为ab的DequeCyclics数组(大小=10) 您可能想要的是: DequeCyclic ab=新的DequeCyc

当我运行这个时,我不知道为什么它给了我那个 java:115:错误:找不到符号 ab.是空的(); ^ 符号:方法isEmpty() 位置:DequeCyclic[]类型的变量ab 1错误 我还想知道为什么左推有这条线 左=(左+1)%queue.length

您的问题在于:

DequeCyclic[]ab=新的DequeCyclic[10]

这条线是干什么的? 它初始化一个名为
ab
DequeCyclic
s数组(大小=10)

您可能想要的是:

DequeCyclic ab=新的DequeCyclic(10)

使用参数10调用
DequeCyclic
的构造函数,将其分配给变量
ab

接下来,什么是
left=(left+1)%queue.length做什么

left+1
,相当于
left++

否则,只要
left+1==queue.length
,由于模运算,left将为零。

注意:
left=right=size=0
无效。非常感谢!这很有帮助!
    public class DequeCyclic implements Deque{
        private int left, right, size, capacity;
        private Object[] queue;
        //Constructing an empty Queue
        //@param s is the final size of the array
 
    public DequeCyclic(final int s) {
        left= right = size = 0;
        queue = new Object[s];
        capacity = s;
        
    }

    public boolean isEmpty() {
        return (size == 0);
    }
    public void pushLeft(Object c) throws Overflow{
        if (isFull()) {
            throw new Overflow ("the queue is full");
        }
        else if (left == 0 && right == 0 && size ==0) {
            queue[0] = c;
        }
        
        else {
            left = (left+1) % queue.length;
            queue[left] = c;
        }
        size++;
        }
    public static void main(String[] args){
        DequeCyclic[]  ab = new DequeCyclic[10];
        ab.isEmpty();//this is the problem
        }
    }