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



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

有没有像这样使用String来创建新的LinkedList?对于赋值,我需要这样做,这样我就不能更改方法声明。

public void createQueue(String s){
LinkedList<obj> s = new LinkedList<obj>();
}

我可能也有错误的看法。我只是想创建linkedList atm。但我的要求如下:

boolean addQueue(字符串(

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

您必须维护一个队列集合。因为每个队列都有一个唯一的名称,所以最合适的集合是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);
}
}

使用addQueue()addPcb()的替代实现可以是:

public void addPcb(Pcb pcb, String queueName) {
addQueue(queueName);
List<Pcb> queue = queues.get(queueName);
queue.add(pcb);
}

问题是您有两个名为s的不同变量-String s参数(它是一个变量(和LinkedList<obj> s

只需重命名其中任意一个即可。

相关内容

  • 没有找到相关文章

最新更新