Java 队列的删除方法
我尝试实现一个循环队列,我想从队列中删除一个客户,但是它删除了两个客户而不是一个客户。 例如,我在队列中添加了4个客户(“Joe”、“Mary”、“Carol”和“George”),他们都被显示出来。假设我想删除(“Joe”)并显示队列。它显示我(“卡罗尔”、“乔治”),这意味着它还删除了“玛丽”。。。我不知道如何解决这个问题 我的队列将由从等候室移动到CustomerQueue的客户组成。最大客户数量为33 这是我的密码:Java 队列的删除方法,java,Java,我尝试实现一个循环队列,我想从队列中删除一个客户,但是它删除了两个客户而不是一个客户。 例如,我在队列中添加了4个客户(“Joe”、“Mary”、“Carol”和“George”),他们都被显示出来。假设我想删除(“Joe”)并显示队列。它显示我(“卡罗尔”、“乔治”),这意味着它还删除了“玛丽”。。。我不知道如何解决这个问题 我的队列将由从等候室移动到CustomerQueue的客户组成。最大客户数量为33 这是我的密码: package hotelbooking; public class
package hotelbooking;
public class HotelBooking {
static int ROOM_CAPACITY = 33;
private static Customer[] waitingRoom = new Customer[ROOM_CAPACITY];
private static CustomerQueue hotelQueue = new CustomerQueue();
这是用户从队列中删除第一个客户的方法
private static void DeleteCustomerFromHotelQueue(Customer[] waitingRoom) {
System.out.println(hotelQueue.remove() + " ");
}
有人能在我挣扎的时候帮我吗?for(int I=front;Ifor (int i = front; i < currentSize; i++)
您想在这里以i=0
开始(int i=front;i你想从这里的
i=0
开始我想你必须使用
System.out.println(queArray[(i)%queArray.length] + "");
您是从数组的前端开始的,因此我认为您不需要再次向它添加该值
================编辑=================
我试过一个样品,下面的对我有用
public void display() {
//list elements from front to end in the queArray
for (int i = front; i <= currentSize; i++) {
System.out.println(queArray[(i)%queArray.length] + "");
//queArray[i].display();
}
}
当我在for循环中将I=front
更改为I=0
时,我得到了下面的输出
null
City [city=asd]
City [city=zxc]
City [city=zaq]
我想我再也解释不清楚了。希望这有助于您理解问题和解决方案我认为您必须使用
System.out.println(queArray[(i)%queArray.length] + "");
您是从数组的前端开始的,因此我认为您不需要再次向它添加该值
================编辑=================
我试过一个样品,下面的对我有用
public void display() {
//list elements from front to end in the queArray
for (int i = front; i <= currentSize; i++) {
System.out.println(queArray[(i)%queArray.length] + "");
//queArray[i].display();
}
}
当我在for循环中将I=front
更改为I=0
时,我得到了下面的输出
null
City [city=asd]
City [city=zxc]
City [city=zaq]
我想我再也解释不清楚了。希望这有助于您了解问题和解决方案即使我这样做了,它仍然会删除两个客户,而不仅仅是一个@nithin您能否确认是否已调试并验证队列中只有两个客户?如果没有,请确认,因为看到代码我觉得它很正常。事情是我对java非常陌生,所以我实际上不知道调试器是如何工作的,但我确实尝试过调试它,调试器中显示的唯一内容是“监听60503用户程序运行”@nithin如果您使用的是IDE,它非常简单,我更喜欢并使用intellij IDEA您使用了什么?我使用的是netBeans@nithine即使我这样做了,它仍然会删除两个客户,而不仅仅是一个@nithin。您能否确认是否已调试并验证队列中只有两个客户?如果没有,请确认,因为看到代码我觉得它很正常。事情是我对java非常陌生,所以我实际上不知道调试器是如何工作的,但我确实尝试过调试它,调试器中显示的唯一内容是“监听60503用户程序运行”@nithin如果您使用的是IDE,它非常简单,我更喜欢并使用intellij IDEA你在使用什么?我在使用netBeans@nithin当你删除一个客户时,front变为1,然后你从1开始。我不明白,如果代码已经在我的显示器中实现了,那么我应该如何实现代码()方法@sparikChange
i=front
到i=0
在for循环中,我所做的就是给我空值,然后第二个乘客@sparikChange当你删除一个客户时,front变为1,然后你从1开始,我不明白,那么我应该如何实现代码,如果它已经在我的display()方法@sparikChangeI=front
toI=0
中实现,那么在for循环中,我所做的就是给我null,然后第二个乘客@斯巴里克