📄 queue.java
字号:
/*
* 创建日期 2005-2-26
*
* TODO 要更改此生成的文件的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package simulator;
public class Queue {
/**
*
* @uml.property name="customers"
* @uml.associationEnd multiplicity="(1 1)"
*/
private List customers = new List(); //用Java的List类来实现队列
private synchronized Object performAction(String cmd, Object obj) {
if (cmd.equals("insert")) { //处理插入操作
if (!customers.isFull())
customers.add(obj); //在列表中插入一个对象
notify();
return null;
} else if (cmd.equals("size")) {
return new Integer(customers.getSize()); //返回队列的大小
} else if (cmd.equals("retrieve")) { //获取一个顾客
while (customers.getSize() == 0) {
try {
wait();
} catch (InterruptedException ie) {
System.out.println("Synch error in queue: " + ie);
}
}
Customer c = (Customer) customers.get(0); //获取队列的第一个对象
//转换成Customer对象
customers.delete(0); //删除队列的第一个对象
return c;
} else
return null;
}
public void insert(Customer c) //插入一个顾客
{
performAction("insert", c);
}
public int getSize() //获得顾客队列的大小
{
return ((Integer) performAction("size", null)).intValue();
}
public Customer requestCustomer() //从队列获取一个顾客
{
return (Customer) performAction("retrieve", null);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -