尝试以随机间隔向ArrayDeque添加对象。这就是我所拥有的
for (int i = 0; i <= 100; i ++) {
if (window.isEmpty()) {
Customer customer = new Customer(r.nextInt(10)+1);
q.add(customer);
window.beginService();
}
else {
Customer customer = new Customer(r.nextInt(10)+1);
q.add(customer);
window.beginService();
totalCustomers++;
totalServiceTime += window.serviceTime;
totalWaitTime += customer.getArrivalTime();
}
}
正在使用的其他方法是
public boolean isEmpty() {
if (serviceTime == 0) {
return true;
}
else
return false;
}
public void beginService() {
if (isEmpty()) {
serviceTime = r.nextInt(10)+1;
}
else
serviceTime += r.nextInt(10)+1;
}
public Customer(int arrivalTime) {
this.arrivalTime = arrivalTime;
}
public int getArrivalTime() {
return arrivalTime;
}
当我打印出我的客户计数时,它等于我的时钟时间,这不应该是客户以1-10的随机间隔添加。有任何想法吗?
答案 0 :(得分:0)
您是否将“时钟时间”定义为i
的值?如果是这样,我不确定为什么你会期望它和totalCustomers
不同。
在for循环中,无论窗口是否为空,都可以添加客户。在第一次使用之后,窗口将永远不会为空,因为您总是开始服务始终将serviceTime
增加至少1
因此,在循环的第一次迭代之后,if
的else分支将独占执行,totalCustomers
将始终与i
一起递增。
我认为您的代码中存在较大的逻辑缺口,但您对于如何构建问题或显示代码并不十分清楚。目前还不清楚如何声明serviceTime
或者代码应该做什么。你似乎永远不会从队列中取出一个项目。如果你需要更多的帮助,你需要在你的问题上付出更多的努力。