我想在hashmap中添加一个链表。 前 约翰: - >千斤顶 - >黑 - >裂纹 苏珊: - >莎莉,森美,傻 ECT
我不太确定如何做到这一点。我是否需要为每个名称使用新的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());
}
}
}
如果这不是一个好帖子,这是我的第一个
答案 0 :(得分:2)
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);
}
答案 1 :(得分:1)
亚力克的答案是你问题的常见(也是最轻量级)解决方案,你应该选择的答案(如果他根据我的评论修改它),但只是想让你意识到另一个解决方案是使用LinkedListMultiMap(它是Guava库中的一个类)。
LinkedListMultiMap是一种处理列表映射的简单方法(但是带有Guava库的额外库开销)。您可以为每个键单独添加多个值,我相信这是您期望的行为。