Java的contains
方法是用來判斷一個集合中是否包含指定元素的方法,它會調用元素的equals
方法來比較元素是否相同。如果你要查找自定義對象是否包含在集合中,需要在自定義對象中重寫equals
方法和hashCode
方法,以確保contains
方法能正確比較自定義對象是否相同。
下面是一個例子,展示如何重寫equals
和hashCode
方法來使自定義對象能夠正確用contains
方法進行查找:
public class CustomObject {
private int id;
private String name;
// 構造方法、getter和setter等略
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CustomObject other = (CustomObject) o;
return id == other.id &&
Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
}
在上面的例子中,我們重寫了equals
方法來比較兩個CustomObject
對象是否相同,同時也重寫了hashCode
方法以確保相同的對象具有相同的哈希碼。這樣就能確保contains
方法在查找自定義對象時能夠正確比較對象是否相同。