繁体   English   中英

添加到HashMap中的linkedList <String, LinkedList>

[英]Adding to a linkedList in a HashMap<String, LinkedList>

我想在hashmap中添加一个链表。 前约翰: - >杰克 - >黑 - >破解苏珊: - >莎莉,萨米,傻等

我不太清楚如何做到这一点。 我是否需要为每个名称使用新的linkedList,如果是,我如何动态创建一个。 这是我尝试的一些示例代码。

import java.util.*;
import java.io.*;
public class test {
    public static void main(String args[]) throws FileNotFoundException{
        HashMap<String, LinkedList<String>> testMap =  new HashMap<String, LinkedList<String>>();
        File testFile = new File("testFile.txt");
        Scanner enterFile = new Scanner(testFile);
        String nextline = "";
        LinkedList<String> numberList = new LinkedList<String>();
        int x = 0;
        while(enterFile.hasNextLine()){
            nextline = enterFile.nextLine();
            testMap.put(nextline.substring(0,1),numberList);
            for(int i = 1; i < nextline.length() - 1; i++){
                System.out.println(nextline);
                testMap.put(nextline.substring(0,1),testMap.add(nextline.substring(i,i+1)));
            }
            x++;
        }
        LinkedList<String> printHashList = new LinkedList<String>();
        printHashList = testMap.get(1);
        if(printHashList.peek() != "p"){
            System.out.println(printHashList.peek());
        }
    }
}

如果这不是一个好帖子,这是我的第一个

public void putToMap(String name) {
    String firstLetter = name.substring(0, 1);

    List<String> names = testMap.get(firstLetter);
    if (names == null) {
        names = new LinkedList<String> ();
        testMap.put(firstLetter, names);
    }

    names.add(name);
}

Alex的答案是你的问题的常见(也是最轻量级)解决方案,你应该选择的答案(如果他根据我的评论修改它),但只是想让你意识到另一个解决方案是使用LinkedListMultiMap (这是番石榴图书馆的一个类)。

LinkedListMultiMap是一种处理列表映射的简单方法(但带有Guava库的额外库开销)。 您可以为每个键单独添加多个值,我相信这是您期望的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM