java - 如何创建字典

标签 java dictionary shared-libraries

我想创建某种结构,其中我可以有重复的键,但值不同。 我使用java, HashMap 很好,但不允许重复的键,我导入了用于多重映射的谷歌 Guava 库,但似乎无法使它工作任何更好的想法或建议? 我想保存多个对象,然后使用键搜索它们,但某些对象将具有相同的键。

寻找java字典

这是我要插入的内容的示例

    NP|DET|NOM|
    NP|PROPERNOUN|
    NOM|NOUN|NOUN|
    S|NP|VP|
    VP|VERB|NP|
    VP|VERB|PP|

最左边的值是键,右边的终端是值

最佳答案

根据定义,Map 不能包含非唯一键。您需要将值存储为Collection(例如ArrayList)。

private Map<String, Collection<String>> myDictionary = new HashMap<>();

public void addWord(String word, String definition) {
    Collection definitions = myDictionary.get(word);
    if(definitions == null) {
         definitions = new ArrayList<String>();
         myDictionary.put(word, definitions);
    }
    definitions.add(definition);
}

关于java - 如何创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16611355/

相关文章:

Java 迭代器不适用于单个可迭代对象

java - 安卓。 NavigationView 中显示的菜单项内的标题未垂直居中

excel - 更改 VBA 字典中的数组值

c++ - 在动态库中包装不同版本的静态库

java - GXT Window 是否有 onblur 事件

java - 使用 Java HttpUrlConnection 发送带有 token 的 GET 请求

Java readLine() 无法正常工作

C++检查一个对象是否存在于两个映射中

java - 将c/c++与Java原生代码集成为共享库(gcj编译)

c++ - 海湾合作委员会,C++ : static string member variarible causes heap corruption/segmentation fault