- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我只是在寻找一个技巧来帮助我开始这个程序,这样我就可以有多个“行”。我目前有 1 行,正在尝试添加另外两行(LinkedQueues)。我需要编写一个包含 3 行的程序。而不是只有一行。我只是在寻找一些可能的帮助来尝试启动这个程序
public class WaitLine
{
private QueueInterface<Customer> line, line2, line3;
private int numberOfArrivals;
// private int numberOfArrivals1;
//private int numberOfArrivals2;
//private int numberOfArrivals3;
private int numberServed;
private int totalTimeWaited;
public WaitLine()
{
line = new LinkedQueue<>();
line2 = new LinkedQueue<>();
line3 = new LinkedQueue<>();
reset();
} // end default constructor
/** Task: Simulates a waiting line with one serving agent.
* @param duration the number of simulated minutes
* @param arrivalProbability a real number between 0 and 1, and the
* probability that a customer arrives at
* a given time
* @param maxTransactionTime the longest transaction time for a
* customer */
public void simulate(int duration, double arrivalProbability,
int maxTransactionTime)
{
int transactionTimeLeft = 0;
for (int clock = 0; clock < duration; clock++) {
if (Math.random() < arrivalProbability) {
numberOfArrivals++;
int transactionTime = (int)(Math.random() * maxTransactionTime + 1);
Customer nextArrival = new Customer(clock, transactionTime, numberOfArrivals);
line.enqueue(nextArrival);
System.out.println("Customer " + numberOfArrivals
+ " enters line at time " + clock
+ ". Transaction time is " + transactionTime);
} // end if
if (transactionTimeLeft > 0)
transactionTimeLeft--;
else if (!line.isEmpty())
{
Customer nextCustomer = line.dequeue();
transactionTimeLeft = nextCustomer.getTransactionTime() - 1;
int timeWaited = clock - nextCustomer.getArrivalTime();
totalTimeWaited = totalTimeWaited + timeWaited;
numberServed++;
System.out.println("Customer " + nextCustomer.getCustomerNumber()
+ " begins service at time " + clock
+ ". Time waited is " + timeWaited);
} // end if
} // end for
} // end simulate
/** Task: Displays summary results of the simulation. */
public void displayResults()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System.out.println();
System.out.println("LINE 1:");
System.out.println("Number served = " + numberServed);
System.out.println("Total time waited = " + totalTimeWaited);
double averageTimeWaited = ((double)totalTimeWaited) / numberServed;
System.out.println("Average time waited = " + averageTimeWaited);
int leftInLine = numberOfArrivals - numberServed;
System.out.println("Number left in line = " + leftInLine);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System.out.println();
System.out.println("LINE 2:");
System.out.println("Number served = " + numberServed);
System.out.println("Total time waited = " + totalTimeWaited);
System.out.println("Average time waited = " + averageTimeWaited);
System.out.println("Number left in line = " + leftInLine);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System.out.println();
System.out.println("LINE 3:");
System.out.println("Number served = " + numberServed);
System.out.println("Total time waited = " + totalTimeWaited);
System.out.println("Average time waited = " + averageTimeWaited);
System.out.println("Number left in line = " + leftInLine);
} // end displayResults
/** Task: Initializes the simulation. */
public final void reset()
{
line.clear();
numberOfArrivals = 0;
numberServed = 0;
totalTimeWaited = 0;
} // end reset
} // end WaitLine
最佳答案
也许 WaitLine
类必须只代表一行。从类成员中删除 line2, line3
。然后添加另一个客户端类,该类将根据需要创建任意数量的 WaitLine
实例,并循环或并发调用它们的方法。
关于java - 使用 LinkedQueue 模拟购物线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60133223/
我正在尝试复制原始队列并打印出队列的内容,然后再次运行副本并打印队列中的元素总数。当我在原始队列上运行 CopyQueue 方法并将其用作 ShowQueue 方法的输入时,它会更改原始队列。 pub
我想知道哪个是使用 EDU.oswego.cs.dl.util.concurrent.LinkedQueue 的最佳替代方案。 在以下情况下: public class testQueue exten
首先,我想说这是我在这里发表的第一篇文章,所以如果我做错了什么,请告诉我。 我有一个名为 EmployeeRecord 的类: void setEmployeeRecord(int empNo, St
我用Java实现了一个LinkedQueue。这是我自己的实现,它不扩展任何类或实现任何接口(interface)(项目的要求)但是,我的打印方法没有返回队列中的第一项。有什么想法吗? ListNod
我正在尝试用 C++ 实现一个 LinkedQueue 结构来存储一些航类的数据。 所以,首先我必须读取一个 csv 文件,它提供了要存储的数据。LinkedQueue 必须以这种方式工作:必须使用
我只是在寻找一个技巧来帮助我开始这个程序,这样我就可以有多个“行”。我目前有 1 行,正在尝试添加另外两行(LinkedQueues)。我需要编写一个包含 3 行的程序。而不是只有一行。我只是在寻找一
我是 C++ 的新手。我正在研究 here 中的以下示例.我得到 expected a declaration行错误 friend LinkedQueue; .我的理解是我需要使用类似 friend
通过这个 LinkedQueue 的实现,除了 pop() 方法之外的所有方法都可以正常工作。当使用 pop() 方法时,堆栈中的所有值都会消失,当它应该只删除第一个值时,堆栈会变成空 这是 Link
我是一名优秀的程序员,十分优秀!