标签:mamicode 可重复 双向 成员变量 turn pre src 获取 答案
// 1. 如果key 相等 if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k)))) e = p; // 2. 修改对应的value if (e != null) { // existing mapping for key V oldValue = e.value; if (!onlyIfAbsent || oldValue == null) e.value = value; afterNodeAccess(e); return oldValue; }
ArrayList的底层是数组,LinkedList的底层是双向链表。
需要同时重写该类的hashCode()方法和它的equals()方法。
一般来说,我们会认为:只要两个对象的成员变量的值是相等的,那么我们就认为这两个对象是相等的!因为,Object底层比较的是两个对象的地址,而对我们开发来说这样的意义并不大~这也就为什么我们要重写equals()
方法
重写了equals()方法,就要重写hashCode()的方法。因为equals()认定了这两个对象相同,而同一个对象调用hashCode()方法时,是应该返回相同的值的!
标签:mamicode 可重复 双向 成员变量 turn pre src 获取 答案
原文地址:https://www.cnblogs.com/SmartCat994/p/13191274.html