通过Java

时间:2016-01-04 18:52:41

标签: java arraylist hashmap

我有一个接受多个参数的程序。第一个参数是文本文件的名称,然后它们只是随机字符串。

文本文件包含以下格式的数据:

Blue : Chrome Outlook
Red  : Spotify Word

因此,如果程序收到参数Blue,程序将返回Chrome和Outlook。

我很难找到一种方法让程序扫描每一行并以这样的方式存储它,例如Chrome和Outlook仍然链接到Blue。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您使用存储Map值的Collection,则可以将键与多个值相关联。如果您允许重复使用与键对应的值,则可以使用:

Map<String, List<String>> dictionary = HashMap<String, List<String>>();

然后您可以这样添加元素:

public void add(String key, String value) {
    if (dictionary.containsKey(key)) {
        dictionary.get(key).add(value);
    } else {
        List<String> valueList = new ArrayList<String>();
        valueList.add(value);
        dictionary.put(key, valueList);
    }
}

注意:Guava的Multimap也支持上述功能。