1. 程式人生 > >(java面試)為什麼需要重寫equals方法

(java面試)為什麼需要重寫equals方法

預設equals在比較兩個物件時,是看他們是否指向同一個地址的。

但有時,希望兩個物件只要是某些屬性相同就認為他們的quals為true。比如:
Student s1 = new Student(1,"name"); Student s2 = new Student(1,"name");
如果不重寫equals的話,他們是不相同的,因為引用s1和s2指向的堆記憶體地址顯然不一樣,所以我們要重些equals,
判斷只要他們的id和名字相同equals就為true,在一些集合裡有時也這樣用,集合裡的contain也是用equals來比較