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

时间:2015-10-28 06:40:40

标签: java

我使用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);

任何有关更好实施或可能改进的建议都非常感谢。

2 个答案:

答案 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;那么问题。我会很高兴您运行此代码并评论此代码的干运行。如果你这样做,我的意图就完成了。 希望这会有所帮助。