本帖最后由 陈团辉 于 2013-3-20 08:44 编辑
hashmap 中的Entry链问题
引用网上的一段话:
当程序试图将一个key-value对放入HashMap中时,程序首先根据该 key 的 hashCode() 返回值决定该 Entry 的存储位置:如果两个 Entry 的 key 的 hashCode() 返回值相同,那它们的存储位置相同。如果这两个 Entry 的 key 通过 equals 比较返回 true,新添加 Entry 的 value 将覆盖集合中原有 Entry 的 value,但key不会覆盖。如果这两个 Entry 的 key 通过 equals 比较返回 false,新添加的 Entry 将与集合中原有 Entry 形成 Entry 链,而且新添加的 Entry 位于 Entry 链的头部
我的疑问是,这段话要怎么理解
因为当我定义
Java代码:- 1.map.put(1,"a");
- 2.map.put(1,"b");
- map.put(1,"a");
- map.put(1,"b");
复制代码 此时map的size实际是1,map.get(1)为b也就是说后put的元素把前面的覆盖了。
所以我想知道的是这个Entry里有多个元素,该怎么理解?
|