Java 具有多个键到值的hashmap?
我有一个关于具有多个值键的hashmaps的问题。假设我有关键/价值 1/a、1/b、1/3、2/aa、2/bb、2/cc 这样行吗Java 具有多个键到值的hashmap?,java,hashmap,Java,Hashmap,我有一个关于具有多个值键的hashmaps的问题。假设我有关键/价值 1/a、1/b、1/3、2/aa、2/bb、2/cc 这样行吗 如果有,我是否可以循环使用它并仅显示键1或键2的所有值?java.util.HashMap不允许将多个值映射到单个键。你想用番石榴的。通读接口以确定哪个实现的版本适合您。
如果有,我是否可以循环使用它并仅显示键1或键2的所有值?java.util.HashMap不允许将多个值映射到单个键。你想用番石榴的。通读接口以确定哪个实现的版本适合您。
HashMap<Integer, List<String>> myMap = new HashMap<Integer, List<String>>();
您可以使用列表作为值的地图,例如:
HashMap<Integer, List<String>> myMap = new HashMap<Integer, List<String>>();
简单的多重贴图类似于以下骨架:
public class MultiMap<K,V>
{
private Map<K,List<V>> map = new HashMap<K,List<V>>();
public MultiMap()
{
// Define constructors
}
public void put(K key, V value)
{
List<V> list = map.get(key);
if (list == null)
{
list = new ArrayList<V>();
map.put(key, list);
}
list.add(value);
}
public List<V> get(K key)
{
return map.get(key);
}
public int getCount(K key)
{
return map.containsKey(key) ? map.get(key).size() : 0;
}
}
它不能直接实现Map,因为put不能返回从未替换过的替换元素。完整的细化将定义一个接口MultiMap和一个实现类,为了简洁起见,我省略了它,以及您可能需要的其他方法,例如V removeK key和V getK key,int index。。。任何你能想到的可能有用的东西:-一个简单的多重贴图看起来像这样的骨架:
public class MultiMap<K,V>
{
private Map<K,List<V>> map = new HashMap<K,List<V>>();
public MultiMap()
{
// Define constructors
}
public void put(K key, V value)
{
List<V> list = map.get(key);
if (list == null)
{
list = new ArrayList<V>();
map.put(key, list);
}
list.add(value);
}
public List<V> get(K key)
{
return map.get(key);
}
public int getCount(K key)
{
return map.containsKey(key) ? map.get(key).size() : 0;
}
}
它不能直接实现Map,因为put不能返回从未替换过的替换元素。完整的细化将定义一个接口MultiMap和一个实现类,为了简洁起见,我省略了它,以及您可能需要的其他方法,例如V removeK key和V getK key,int index。。。还有任何你能想到的可能有用的东西:-映射将处理多个键到一个值,因为只有键需要是唯一的: 映射键,值 但是,多个值的一个键要求映射的多重映射严格为: 映射键,列表值 此外,如果您决定使用HashMap和/或HashSet,那么无论使用什么键,都应该实现一个好的hadhCode函数
编辑:不得不使用,而不是因为我的手机或sof的手机站点编辑器对符号进行了重击……odd地图将多个键处理为一个值,因为只有键需要唯一: 映射键,值 但是,多个值的一个键要求映射的多重映射严格为: 映射键,列表值 此外,如果您决定使用HashMap和/或HashSet,那么无论使用什么键,都应该实现一个好的hadhCode函数
编辑:不得不使用,而不是因为我的手机或sof的手机网站编辑器对符号进行了重击…奇怪的谢谢。有没有其他不使用外部资源的方法?谢谢。有没有其他不使用外部资源的方法?