【发布时间】:2014-08-04 19:18:43
【问题描述】:
我早些时候发布了这个问题,并就如何解决这个问题寻求帮助。我最终创建了一个客户类,它生成一个随机的名字和姓氏,并在每次创建新客户对象时为客户分配随机数量的杂货。
这里是代码
import java.util.Random;
public class Customer {
private String lastName;
private String firstName;
private int groceryItems;
private String[] last = { "Jordan", "James", "Bryant", "Bird", "Wade",
"Bosh", "Griffin", "Durant", "WestBrook", "Anthony" };
private String[] first = { "Michael", "Lebron", "Kobe", "Larry", "Dwayne",
"Chris", "Blake", "Kevin", "Russell", "Carmelo" };
public Customer() {
Random pickLast = new Random();
lastName = last[pickLast.nextInt(10)];
Random pickFirst = new Random();
firstName = first[pickFirst.nextInt(10)];
Random pickItems = new Random();
groceryItems = pickItems.nextInt(25);
}
public String getlast() {
return lastName;
}
public String getFirst() {
return firstName;
}
public int getItems() {
return groceryItems;
}
public void display() {
System.out.println("First Name: " + firstName + " Last Name: "
+ lastName + " Items Purchased: " + groceryItems);
}
}
队列代码
public class Queue {
private int maxSize;
private int[] queArray;
private int front;
private int rear;
private int nItems;
public Queue(int s) {
maxSize = s;
queArray = new int[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
public void insert(int j) {
if (rear == maxSize - 1)
rear = -1;
queArray[++rear] = j;
nItems++;
}
public int remove() {
int removed = queArray[front++];
if (front == maxSize)
front = 0;
nItems--;
return removed;
}
public int peek() {
return queArray[front];
}
public boolean isEmpty() {
return (nItems == 0);
}
public boolean isFull() {
return (nItems == maxSize);
}
public int size() {
return nItems;
}
public void display() {
System.out.println("First Inserted Item to Last Inserted Item");
if (rear < front && (!isEmpty())) {
for (int i = front; i < maxSize; i++) {
System.out.println(queArray[i]);
}
for (int i = 0; i <= rear; i++) {
System.out.println(queArray[i]);
}
}
else if (front >= rear && (!isEmpty())) {
for (int i = front; i <= rear; i++) {
System.out.println(queArray[i]);
}
}
else {
System.out.println("Queue is Empty!");
}
}
}
现在我想知道接下来我要创建什么?我只是在寻找指导或循序渐进的方法,因为它将帮助我学习。不是在寻找代码。我在想,既然我有一个客户类,我需要创建一个可以容纳每个客户的队列。我知道如何为简单的 int 或 char 队列编写代码,但我不清楚这个特定队列的要求是什么,因为它包含每个客户对象。
如果我在客户类代码中的任何地方有错误,请纠正我,如果有人可以为我提供下一阶段的步骤以及我应该做什么,我将不胜感激。
如果问题措辞不好,我很抱歉,因为我的英语不好,我确信如果我可以让这个小程序自己运行,我将对 java 和面向对象编程有更好的理解。
【问题讨论】:
-
您需要开始完成问题的队列部分,添加将客户添加到队列(结帐通道)的功能,并添加将其从队列中移除的功能,并添加查看每个队列的状态。
-
是的,我认为这是我需要的下一件事,只是对我必须制作什么样的队列感到困惑?到目前为止,我只编写了用于制作 int 类型队列的代码,我在其中添加了随机数。就我而言,我会将客户添加到队列中,所以我需要一个字符串队列吗?
-
您很可能需要一个
Customer队列。 -
我建议制作
last和firststatic。 -
@user2733436 你可能想要一个 Deque
,除非你需要编写自己的队列。
标签: java oop data-structures queue