为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人2483693 2024-01-17 17:05:59
我正在尝试创建一种方法来创建新的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。
查看完整描述

2 回答

?
DIEA

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);

}


查看完整回答
反对 回复 2024-01-17
?
互换的青春

TA贡献1797条经验 获得超6个赞

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

只需重命名其中之一即可。



查看完整回答
反对 回复 2024-01-17
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信