如何比较两个独立对象中的两对整数?

时间:2014-10-06 03:35:36

标签: java methods

我正在制作一个正在制作两个多米诺骨牌"的程序,它们是随机生成的整数end1end2[end1 | end2]是" domino"的输出。我正在尝试编写一个方法来检查两个Domino是否相同。我希望这个方法equals()将这个Domino与作为参数传递的Domino进行比较。例如,[4|2]将等于[2|4]。我不确定如何比较在不同类中创建的两个对象中的整数。对不起,如果不清楚的话,我很乐意回答任何问题来提供帮助。非常感谢!

到目前为止,我已经

public boolean equals(Domino d) {
    return (this.end1 && this.end2 == Domino.end1 && Domino.end2 ? true : false);
}

显然,这在语法上是非常错误的,但从概念上讲,它正是我所寻找的。

2 个答案:

答案 0 :(得分:1)

您必须将一个Domino的第一端与另一个Domino的第一端进行比较,并将第一端的第二端与另一端的第二端进行比较。如果它们不匹配,则将一个的第一个结束与另一个的第二个结束进行比较,反之亦然。

public boolean equals(Domino d) {
    if (this.end1 == d.end1 && this.end2 == d.end2)
        return true;
    if (this.end2 == d.end1 && this.end1 == d.end2)
        return true;
    return false;
}

答案 1 :(得分:0)

更简单易读:

public boolean equals(Domino d) {
  if ((this.end1 == d.end1 && this.end2 == d.end2) ||
      (this.end2 == d.end1 && this.end1 == d.end2)) 
  {
    return true;
  }
  else
  {
    return false;
  }   
}

想想你想用英语做什么:

  

如果

     

这个end1和Domino的end1是相同的   和   这个end2和Domino的end2是相同的

     

OR

     

这个end2和Domino的end1是相同的   和   这个end1和Domino的end2是相同的

     

RETURN true

     

ELSE

     

RETURN false

通常可以更容易地思考如何设置条件