我想知道一旦Key相同,Hashmap就会处理该值。我使用put方法插入2个具有相同键的元素。 如果没有值,则返回null,否则返回支持的私有值。 hashMap不会为同一个Key存储多个值
public class geekarray {
HashMap<Integer, String> a ;
geekarray(){
a= new HashMap<Integer,String>(10);
System.out.println(a.put(1, "yogi"));
System.out.println(a.put(1, "yogi2"));
System.out.println(a.put(2, "yogi3"));
}
public static void main(String s[]){
geekarray a = new geekarray();
}
}
输出: -
null
yogi
null
答案 0 :(得分:1)
没有。 HashMap
仅为每个键存储一个值(唯一),旧值将被新值覆盖。如果您对每个键存储多个值感兴趣,可以查看Apache Common Utils MultiMap。
答案 1 :(得分:0)
它不会为同一个密钥存储多个值。新值替换旧值。
将指定的值与此映射中的指定键相关联。如果地图以前包含该键的映射,则将替换旧值。
(Source)
至于返回值:
与key关联的上一个值,如果没有key的映射,则返回null。 (null返回也可以指示映射先前将null与key关联。)
答案 2 :(得分:0)
不,HashMap
不会为同一个密钥存储多个值。正如documentation所说,
If the map previously contained a mapping for the key, the old value is replaced.
答案 3 :(得分:0)
根据Java 7文档:
如果地图以前包含该键的映射,则为旧值 被替换了。
所以你只能为每个键放一个值。任何额外的看跌期权都将覆盖现有价值。
http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html#put(K,%20V)