我试图编写程序来删除单词列表的重复键值对.但是,如果密钥以不同的值重复,则应允许该记录添加.请帮助我了解哪个Java集合将解决这种情况.
> key1 aaaa
> key2 bbbb
> key3 cccc
> key4 dddd
> key2 bbbb-重复对-不允许
> key1 hhhh-重复密钥-允许
> key5 gggg
> key2 nnnn
解决方法:
您可以使用多图(将一组用作值的集合)来进行此操作,这很容易做到.
这是实现的一些基础知识,不是全部,但是无法想象您将需要更多的东西,或者可能是remove方法
编辑
刚刚看到您希望将重复的对扔掉,可以使用一个集合来做到这一点,而不是抛出错误,只是将布尔值还给我们以显示是否已经存在(如果存在则返回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);
}
}