Java Queue Peek()保持返回最新条目,而不是第一次输入

Java Queue Peek()保持返回最新条目,而不是第一次输入,java,queue,Java,Queue,我试图偷看我的队列并抓取第一个条目,这样我就可以按删除按钮将其删除,但是偷看显示的是最后一个条目,而不是第一个条目。我试过偷窥和偷窥 private int maxSize; private String[] queArray; private int front; private int rear; private int nItems; public String FN,LN,PN,Email,Addres,State,Zip,LicensePlate; public Queue(Stri

我试图偷看我的队列并抓取第一个条目,这样我就可以按删除按钮将其删除,但是偷看显示的是最后一个条目,而不是第一个条目。我试过偷窥和偷窥

private int maxSize;
private String[] queArray;
private int front;
private int rear;
private int nItems;
public String FN,LN,PN,Email,Addres,State,Zip,LicensePlate;

public Queue(String fN, String lN, String pN, String email, String address, String state, String zip,
        String licensePlate) {

    maxSize++;

    queArray = new String[maxSize];
    front = 0;
    rear = -1;
    nItems = 0;
    FN = fN;
    LN = lN;
    PN = pN;
    Email = email;
    Addres = address;
    State = state;
    Zip = zip;
    LicensePlate = licensePlate;

}

public void insert(String FN, String LN, String PN, String Email, String Addres, String State, String Zip,
        String LicensePlate) {
    String input = "{" + "First Name: "+ FN + ", " +"  Last Name: "+ LN +", "+"   Phone Number: "+ PN + ", " +"  Email: "+ Email +", " +"  Address: "+ Addres + ", " +"  State: "+  State +", "+"  Zip: "+  Zip + ", " +"  LicensePlate: "+ LicensePlate + "}";
    if (rear == maxSize - 1)
        rear = -1;
    queArray[++rear] = input;
    nItems++;
    }

  public String peekFront() {

    return queArray[front++];
}

public String peek() {
    return queArray[front];
}

通过将maxSize++更改为maxSize=5来修复此问题。如果我没有弄错的话,这种情况正在发生,因为您的maxSize机制

maxSize永远不会被设置为一个仅随
maxSize++
递增一次的数字。所以maxSize总是1

现在,当已经插入一个元素时,将调用以下代码,因为rear现在是0,maxSize-1=1-1

if(后==maxSize-1)
后部=-1;
queArray[++后方]=输入

您只是在覆盖数组中的唯一元素


<>而不是编写自己的基于数组的队列来保存数据,考虑为数据使用自定义对象,并且已经实现的队列类似

这是队列类中的代码吗?您能否提供一个简单的代码示例,说明如何使用它以及错误是什么?这是因为您使用front插入新元素。每次添加一个元素时,对前一个变量执行增量操作,使其始终指向添加到队列中的最后一个元素。如果需要第一个变量,则需要第二个变量“head”,它位于队列的前面元素。因此,使用两个变量,一个用于处理此数据结构的尾部,另一个用于头部。前者在队列末尾插入元素时,第二个用于检索操作。我应该使类本身不使用导入,希望我可以更简单。我想你是对的,我将maxsize++更改为一个数字,现在一切正常谢谢