我使用hashmap创建一个顶点邻接列表,其中'V'是要创建的顶点总数,'v'是单个顶点。 'v'表示hashmap adj的键和该顶点的名称。每个键“v”指向最初为空的LinkedList。我需要访问LinkedList到: 1.将元素添加到LinkedList 2.一次迭代LinkedList 1元素,在for-each循环中实现。
Sequence
1。预期函数:在键'v'
中将int w添加到LinkedList的末尾HashMap<Integer, List<Integer>>adj = new HashMap<Integer, List<Integer>>();
for(int v = 0; v < V; v++)
adj.put(v, new LinkedList<Integer>());
2。预期函数:对于关键字'v'的LinkedList中的每个节点,将该节点添加到key'w'并在每次迭代时执行指定的函数。
((LinkedList<Integer>)adj.get(v)).addLast(w);
任何有关更好实施或可能改进的建议都非常感谢。
答案 0 :(得分:0)
你可以这样做:
for(Map.Entry<Integer, List<Integer>> entry : adj.entrySet()) {
for (int w : entry.getValue()) {
// Do something here
}
}
答案 1 :(得分:0)
虽然你的问题描述缺乏研究。但我相信分发知识,请按照下面的代码片段来回答您的问题。
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****
&安培;下一次更好地参考标准书籍&amp;那么问题。我会很高兴您运行此代码并评论此代码的干运行。如果你这样做,我的意图就完成了。 希望这会有所帮助。