java中的equals()和hashcode()方法

时间:2016-04-07 11:48:26

标签: java

来自同一作业的另一个问题:

//attributes:
public int identifikace;
public String druh;
public int vek;
public Majitel majitel;

//constructor:
public Zvire(int identifikace, String druh, int vek, Majitel majitel){
    this.identifikace = identifikace;
    this.druh = druh;
    this.vek = vek;
    this.majitel = majitel;

一些简单的getter等。现在我应该做什么:"在Zvire类中,添加方法equals()和hashcode()实现,这样两个 Zvire 是相同的,如果他们有相同的识别属性。" (不是一个理想的翻译,但你可能会明白这一点)

我可能会弄清楚,但我开始匆忙。有人会介意很简单吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

请你的IDE为你做这个,这是你从IntelliJ得到的:

@Override
public boolean equals(final Object o) {
    if (this == o) return true;
    if (o == null || this.getClass() != o.getClass()) return false;
    final Zvire zvire = (Zvire) o;
    return this.identifikace == zvire.identifikace;
}

@Override
public int hashCode() {
    return Objects.hash(this.identifikace);
}