Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的equals()和hashcode()方法_Java - Fatal编程技术网

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

java中的equals()和hashcode()方法,java,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

同一作业中的另一个问题:

//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等。现在我应该做的是:“在类zwire中,添加方法equals()和hashcode(),实现两个zwire,如果它们具有相同的identification属性,那么它们是相同的。”(这不是一个理想的翻译,但您可能理解了要点)

我也许能弄明白,但我开始赶时间了。有人介意简单地看一下吗


多谢各位

让你的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);
}

... 但这需要按三个键……;)+1@Nicolas别笑。有些程序员年纪大了,不再有弹性的手指了。@Martin是的,但我不相信这里的情况是这样,因为家庭作业和老程序员不再做家庭作业:-)注意:如果你想从属性派生哈希代码,该属性应该是final,或者至少在逻辑上是不可变的(也就是说,你从不设定,也不允许其他人设定).Public属性可以在任何地方更改,这将破坏包含实例的基于哈希的数据结构。在这个简单的示例中,这不是问题,但是:开始为变量指定英文名称。这会使其他人更容易阅读和理解您的代码!如果我下面的回答对您来说足够好,请毫不犹豫地标记是作为最佳响应,请提前发送thx