簡體   English   中英

如何將元素添加到包含在 HashMap 中的 LinkedList?

[英]How to add elements to a LinkedList that is contained within a HashMap?

我使用哈希圖創建頂點的鄰接列表,其中“V”是要創建的頂點總數,“v”是單個頂點。 'v' 表示 hashmap adj 的鍵和該頂點的名稱。 每個鍵“v”指向一個初始為空的 LinkedList。 我需要訪問該 LinkedList 以: 1. 將元素添加到 LinkedList 2. 一次遍歷 LinkedList 1 元素以在 for-each 循環中實現。

HashMap<Integer, List<Integer>>adj = new HashMap<Integer, List<Integer>>();
    for(int v = 0; v < V; v++)
        adj.put(v, new LinkedList<Integer>());

1. 預期功能:將 int w 添加到 LinkedList 末尾的 key 'v'

((LinkedList<Integer>)adj.get(v)).addLast(w);

2. 預期功能:對於LinkedList 中鍵'v' 的每個節點,將該節點添加到鍵'w' 並在每次迭代時執行指定的功能。

for(int w : ((LinkedList<Integer>)adj.get(v).listIterator(0)))
    //DO THIS

任何關於更好實施或可能改進的建議都非常感謝。

你可以這樣做:

for(Map.Entry<Integer, List<Integer>> entry : adj.entrySet()) {
    for (int w : entry.getValue()) {
        // Do something here
    }
}

雖然你的問題描述了缺乏研究。 但我相信傳播知識,請按照下面的代碼片段來回答您的問題。

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

/**
 *
 * @author vaibhav.kashyap
 */
public class LinkedListInHashMap {

    private Map<String,LinkedList<String>> myMap = null;
    private LinkedList<String> myLinkedList;
    public static void main(String... wq){
        LinkedListInHashMap lObj = new LinkedListInHashMap();
        lObj.fillMap();
        lObj.displayLinkedListItem();
        lObj.addElement("e");
        lObj.addElement("f");
        lObj.displayLinkedListItem();  
    }

    public void addElement(String str){
        myLinkedList.add(new String(str));
    }
    public void fillMap(){
        myMap = new HashMap<String,LinkedList<String>>();
        myLinkedList  = new LinkedList<String>();
        myLinkedList.add(new String("a"));
        myLinkedList.add(new String("b"));
        myLinkedList.add(new String("c"));
        myLinkedList.add(new String("d"));
        myMap.put("myKey", myLinkedList);
    }
    public void displayLinkedListItem(){
        LinkedList<String> tempList = null;
        for(String key: myMap.keySet()){
            tempList = (LinkedList<String>)myMap.get(key);
            for(String str : tempList){
             System.out.println(str);
            }
        }
        System.out.println("**** End of Result****");
    }
}

輸出 :

a
b
c
d
**** End of Result****
a
b
c
d
e
f
**** End of Result****

& 下次最好先參考一本標准的書,然后再提問。 我會很高興您運行此代碼並評論此代碼的試運行。 如果你這樣做,我的意圖就完成了。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM