2 回答
TA贡献1820条经验 获得超2个赞
您必须维护队列集合。因为每个队列都有唯一的名称,所以最合适的集合是Map:
public class QueueManager {
private Map<String, List<Pcb>> queues = new HashMap<String, List<Pcb>>();
public boolean addQueue(String queueName) {
if (queues.containsKey(queueName)) {
// There is already a queue with that name
return false;
} else {
queues.put(queueName, new ArrayList<Pcb>());
return true;
}
}
}
在这里,我假设队列是用 实现的ArrayList,但当然LinkedList会以类似的方式工作。那么方法addPcb()就很明显了:
public void addPcb(Pcb pcb, String queueName) {
List<Pcb> queue = queues.get(queueName);
if (queue != null) {
queue.add(pcb);
} else {
throw new IllegalArgumentException("Queue does not exist: " + queueName);
}
}
addPcb(), 使用的替代实现addQueue()可以是:
public void addPcb(Pcb pcb, String queueName) {
addQueue(queueName);
List<Pcb> queue = queues.get(queueName);
queue.add(pcb);
}
添加回答
举报