簡體   English   中英

Java HashMap的多個鍵具有靈活分配的多個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM