[英]Java HashMap multiple keys with multiple values assigned flexible
我的Java代碼有問題。 我想在一個鍵中存儲多個值,但我想靈活地存儲它們。 這意味着我從一個文本文件中讀取,每一行都是一個單詞。 為了存儲它們,我想構建成對的單詞。 例如:
單詞1 /單詞2
單詞2 /單詞3
word3 / word4
我已經稍微改變了這種方法。 我想將鍵的值存儲在arraylist中。 這意味着每次出現新密鑰時,都會存儲一個新的Arraylist,並且將存儲該密鑰,但是如果該密鑰在映射中,我希望將其存儲在此密鑰的列表中。 這可能嗎?
我們必須將它們存儲在哈希圖中。 但我無法使其正常工作:
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();
}
問題是訂單。 有誰知道如何獲得
hmap.put(fixWort, new ArrayList<String>().add(line));
和
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);
}
因此,您可以查看地圖是否已經包含剛從文件中讀取的line
。 如果是這樣,您只需將其添加到關聯列表中。 如果沒有,請創建一個列表,在其中添加line
,然后將兩者都添加到地圖中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.