2 回答

TA貢獻1820條經(jīng)驗 獲得超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;
}
}
}
在這里,我假設(shè)隊列是用 實現(xiàn)的ArrayList,但當(dāng)然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(), 使用的替代實現(xiàn)addQueue()可以是:
public void addPcb(Pcb pcb, String queueName) {
addQueue(queueName);
List<Pcb> queue = queues.get(queueName);
queue.add(pcb);
}

TA貢獻1797條經(jīng)驗 獲得超6個贊
問題是您有兩個不同的變量命名s
-String s
參數(shù)(它是一個變量)和LinkedList<obj> s
。
只需重命名其中之一即可。
添加回答
舉報