猿问

如何创建方法来生成新的 LinkedList?

我正在尝试创建一种方法来创建新的LinkedLists. 我想传递一个String参数用作新LinkedList标识符,但收到错误“ java: variable s is already defined in method createQueue(java.lang.String)

有没有办法像这样使用 aString来创建新的?LinkedList我需要以这种方式进行分配,这样我就无法更改方法声明。

public void createQueue(String s){

   LinkedList<obj> s = new LinkedList<obj>();

}

我也可能以错误的方式看待这个问题。我只是想创建 linkedList atm。但我的要求如下:

布尔添加队列(字符串)

该方法将有一个字符串参数。它将返回一个布尔值。它将添加一个由参数指定的新队列。例如 addQueue(“ready”) 会在队列列表中创建一个名为“ready”的新队列。如果已经存在指定名称的队列,则此方法将返回 false。例如,如果您已经有一个名为“ready”的队列,并且调用 addQueue(“ready”),它将返回 false。否则,它将创建队列并返回 true。


慕码人2483693
浏览 114回答 2
2回答

DIEA

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

互换的青春

问题是您有两个不同的变量命名s-String s参数(它是一个变量)和LinkedList<obj> s。只需重命名其中之一即可。
随时随地看视频慕课网APP

相关分类

Java
我要回答