我的理解是在hashmap或者hashset中需要使用hashcode()计算哈希值来确定元素存储的位置。只有两个Object哈希值相同,这两个Object的“值”才可能相等。在实际hashmap或hashset中在调用equals()方法的操作也是比较哈希值相同的(也就是在同一个LinkedList或红黑树)的数据。如果你的hashcode()方法都不能保证这两个Object能存到同一个LinkedList或红黑树中,那他们就不可能相等。 综上,所以如果想利用equals()方法判断两个Object相等,必须先重写hashcode()方法。
点赞 评论
牛客网
牛客企业服务