queue.java
来自「源程序可使用Jdk1.3以上的任何版本编译和运行主类是Simulator也可以在」· Java 代码 · 共 57 行
JAVA
57 行
/*
* 创建日期 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 + =
减小字号Ctrl + -
显示快捷键?