Java 使用数组像队列一样存储元素
我正在做酒店项目,我的排队课有问题。 我需要在我的程序中创建队列对象以添加到队列并从队列中获取。每次向房间添加名称时,都应使用队列对象方法将客户的名称添加到队列中。当用户选择显示前3位客户的姓名时,我的代码应将他们逐个(先进先出)从队列中删除,并在删除时显示 队列应基于数组。当队列项到达数组的末尾时,应将它们添加到起始或数组中。如果队列已满,则应自动删除并显示最旧的队列项目 目前的问题是,当端点达到5时,它应该推动第一个输入,并获取最后一个输入,然后将其移动到数组的前面。另外请注意,队列必须基于字符串数组。请看我到目前为止的代码,也许你们中的一些人可以帮忙Java 使用数组像队列一样存储元素,java,arrays,Java,Arrays,我正在做酒店项目,我的排队课有问题。 我需要在我的程序中创建队列对象以添加到队列并从队列中获取。每次向房间添加名称时,都应使用队列对象方法将客户的名称添加到队列中。当用户选择显示前3位客户的姓名时,我的代码应将他们逐个(先进先出)从队列中删除,并在删除时显示 队列应基于数组。当队列项到达数组的末尾时,应将它们添加到起始或数组中。如果队列已满,则应自动删除并显示最旧的队列项目 目前的问题是,当端点达到5时,它应该推动第一个输入,并获取最后一个输入,然后将其移动到数组的前面。另外请注意,队列必须基于
public class Queue {
static String qitems[] = new String[7];
static int front = 0, end = 0;
void addqueue(String name) {
System.out.println("Enter Queue Item :");
qitems[end] = name;
end++;
if(end==5){
takequeue(name);
}
}
void takequeue(String name) {
qitems[front]=name;
if (end > front) {
System.out.println("Item taken :" + qitems[front]);
front++;
} else {
System.out.println("Empty queue");
}
}
void displayqueue() {
System.out.println("Queue display: ");
for (int look = front; look < end; look++) {
System.out.println(" " + qitems[look]);
System.out.println("end"+end);
}
System.out.println("");
}
公共类队列{
静态字符串qitems[]=新字符串[7];
静态int前端=0,端部=0;
void addqueue(字符串名称){
System.out.println(“输入队列项目:”);
qitems[end]=名称;
end++;
如果(结束==5){
takequeue(姓名);
}
}
void takequeue(字符串名称){
qitems[前面]=名称;
如果(结束>前){
System.out.println(“获取的项目:+qitems[前面]);
前端++;
}否则{
System.out.println(“空队列”);
}
}
void displayqueue(){
System.out.println(“队列显示:”);
for(int look=front;look
添加队列()似乎有逻辑缺陷。在检查if(end==5)之前,end的值增加1。当end的值变为6时,if语句被忽略,takequeue()方法未被调用,您将面临此问题。要解决此问题,请在end++之前添加if语句
void addqueue(String name){
System.out.println("Enter Queue Item :");
qitems[end] = name;
if(end==5){
takequeue(name);
}
end++;
}
或者检查end>=5而不是end==5,如下所示:
void addqueue(String name){
System.out.println("Enter Queue Item :");
qitems[end] = name;
end++;
if(end>=5){
takequeue(name);
}
}
p.S.下次提问时,请在问题描述中使用适当的标点符号,使问题更加准确和清晰。另请参阅常见问题解答中的“如何提问”部分。该问题有很多错误。标题数组字符串队列和标记队列使其具有高度误导性。队列完全不同于另外,您不应该将类命名为Queue,因为它是Java库中提供的一个接口。(我已经提交了一个建议的编辑。请注意。)