哪个java集合允许重复键

ama*_*mal 8 java collections dictionary set duplicates

我正在尝试编写程序来删除单词列表的重复键值对。但是,如果键与不同的值重复,则应允许添加该记录。请帮助我了解哪个 java 集合可以解决这种情况。

  • 键 1 aaaa
  • key2 bbbb
  • key3 cccc
  • key4 dddd
  • key2 bbbb - 重复对 - 不允许
  • key1 hhhh - 重复键 - 允许
  • 关键5 gggg
  • 键 2 nnnn

kon*_*ked 7

您可以使用多图来做到这一点,使用集合作为值的集合,制作起来相当简单。

这是实现的一些基础知识,不是全部,但无法想象您还需要更多或者可能需要删除方法

编辑

刚刚看到您想要丢弃重复的对,可以使用集合来做到这一点,而不是抛出错误,只需返回 bool 以显示它是否已经存在(如果存在则返回 false)

public class MultiValueMap<K,V> 
{
    private final Map<K,Set<V>> mappings = new HashMap<K,Set<V>>();

    public Set<V> getValues(K key)
    {
        return mappings.get(key);
    }

    public Boolean putValue(K key, V value)
    {
        Set<V> target = mappings.get(key);

        if(target == null) 
        {
            target = new HashSet<V>();
            mappings.put(key,target);
        }

        return target.add(value);
    }

}
Run Code Online (Sandbox Code Playgroud)