亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創建方法來生成新的 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 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號