java.util.HashMap map=new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());
答案
1
key-value对,键值对,相同键值会放在一处,后一个会覆盖前一个的数值。 HashMap可以插入null的key或value,插入的时候,检查是否已经存在相同的key, 如果不存在,则直接插入, 如果存在,则用新的value替换旧的value, 在本题中,第一条put语句,会将key/value对插入HashMap,而第二条put,因为已经存在一个key为name的项,所以会用新的value替换旧的vaue, 因此,两条put之后,HashMap中只有一个key/value键值对。那就是(name,jack)。所以,size为1.
总结
HashMap是Map接口的实现类,并且不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性 HashMap允许null键和null值 使用put方法向HashMap中添加元素时,如果键不存在,则添加该元素,并返回null;如果键已经存在,则把该键对应的值进行覆盖,返回原来的键,由于键都是"name",所以第二次添加的会把第一次的值覆盖,并返回第一次的键,所以HashMap中还是只有一个元素
|