equals和==的区别,引申到hashmap的存储,两个对象用equals判断相等和不相等的时候,hashmap里面怎么存储
时间: 2023-06-09 22:08:25 浏览: 109
Java解惑系列之一--equals和==之间究竟有什么区别
equals和==的区别在于,equals比较的是两个对象的内容是否相同,而==比较的是两个对象的引用地址是否相同。在hashmap中,当两个对象使用equals比较时返回相等,hashmap会先使用对象的hashCode()方法生成一个hashCode,根据这个hashCode来确定对象在HashMap中的存储位置。如果两个对象使用equals比较返回不相等,则会被存储在哈希表中的不同位置。但是,当两个对象使用==比较时返回true时,它们的hashCode必须相同才能被存储在HashMap的同一位置上。否则,它们将被存储在不同的位置上。
阅读全文