Java HashMap分配了多个值的多个键
我的Java代码有问题。我想在一个键中存储多个值,但我想灵活地存储它们。这意味着我从一个文本文件中读取,每一行都是一个单词。为了存储它们,我想构建成对的单词。例如: 字1/字2 字2/字3 字3/字4 我稍微改变了一下这个方法。我想将键的值存储在arraylist中。这意味着每当出现一个新的键时,就会出现一个新的Arraylist并存储该键,但是如果该键在映射中,我想将它们存储在该键的列表中。这可能吗 我们必须将它们存储在hashmap中。但我无法让它工作:Java HashMap分配了多个值的多个键,java,hashmap,Java,Hashmap,我的Java代码有问题。我想在一个键中存储多个值,但我想灵活地存储它们。这意味着我从一个文本文件中读取,每一行都是一个单词。为了存储它们,我想构建成对的单词。例如: 字1/字2 字2/字3 字3/字4 我稍微改变了一下这个方法。我想将键的值存储在arraylist中。这意味着每当出现一个新的键时,就会出现一个新的Arraylist并存储该键,但是如果该键在映射中,我想将它们存储在该键的列表中。这可能吗 我们必须将它们存储在hashmap中。但我无法让它工作: private HashMap<
private HashMap<String, ArrayList<String>> hmap = new HashMap<String, ArrayList<String>>();
private ArrayList<String> wort2;
public GrammelotH(String filename) throws IOException {
String fixWort = ".";
BufferedReader br = new BufferedReader(new FileReader(filename));
while (br.ready()) {
String line = br.readLine();
if (hmap.containsKey(fixWort)) {
hmap.put(fixWort, wort2.add(line));
}else {
hmap.put(fixWort, new ArrayList<String>().add(line));
}
fixWort = line;
}
br.close();
}
工作
谢谢你的帮助!
再见 我想我会看到
List l = hmap.get(line);
if (l != null) {
l.add(line));
}else {
l = new ArrayList<String>();
l.add(line)
hmap.put(line, l);
}
List l=hmap.get(行);
如果(l!=null){
l、 添加(行));
}否则{
l=新的ArrayList();
l、 添加(行)
hmap.put(直线,l);
}
因此,您可以查看映射是否已经包含刚刚从文件中读取的
行。如果有,您只需将其添加到关联列表中。如果没有。创建一个列表,将行添加到该列表中,然后将两者都添加到地图中。是!在我发送第一篇帖子几秒钟后,我为它创建了一个解决方案。。。。。我是否应该将其发布为“答案”?@Felix如果这解决了问题(即使你已经解决了),我建议将其标记为未来用户接受
hmap.put(fixWort, wort2.add(line));
List l = hmap.get(line);
if (l != null) {
l.add(line));
}else {
l = new ArrayList<String>();
l.add(line)
hmap.put(line, l);
}