[英]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.