Java 如何比较两个独立对象中的两对整数?
我有一个正在进行的程序,它创建了两个“多米诺骨牌”,由随机生成的整数Java 如何比较两个独立对象中的两对整数?,java,methods,Java,Methods,我有一个正在进行的程序,它创建了两个“多米诺骨牌”,由随机生成的整数end1和end2组成[end1 | end2]是“domino”的输出。我试图写一个方法来检查两个多米诺骨牌是否相同。我希望使用此方法,equals(),将此Domino与作为参数传递的Domino进行比较。例如,[4 | 2]等于[2 | 4]。我不知道如何比较在不同类中创建的两个对象中的整数。很抱歉,如果这还不清楚,我很乐意回答任何问题以提供帮助。非常感谢 到目前为止,我已经 public boolean equals(D
end1
和end2
组成<代码>[end1 | end2]是“domino”的输出。我试图写一个方法来检查两个多米诺骨牌是否相同。我希望使用此方法,equals()
,将此Domino与作为参数传递的Domino进行比较。例如,[4 | 2]
等于[2 | 4]
。我不知道如何比较在不同类中创建的两个对象中的整数。很抱歉,如果这还不清楚,我很乐意回答任何问题以提供帮助。非常感谢
到目前为止,我已经
public boolean equals(Domino d) {
return (this.end1 && this.end2 == Domino.end1 && Domino.end2 ? true : false);
}
显然,这在语法上是非常错误的,但在概念上,这正是我要寻找的。您必须将一个多米诺骨牌的第一端与另一个多米诺骨牌的第一端进行比较,将第一个多米诺骨牌的第二端与另一个多米诺骨牌的第二端进行比较。如果两者不匹配,则将一个的第一个端点与另一个的第二个端点进行比较,反之亦然
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;
}
更简单、更容易阅读:
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是相同的
或
这个end2和Domino的end1是相同的
及
这个end1和Domino的end2是相同的
返回真值
否则
返回错误
这通常会使您更容易考虑如何设置条件。
Domino.end1
不会编译,因为end1
很可能不是静态成员(否则此方法没有意义)。@Eran我在您的评论之前就注意到了它,刚刚修复了它。你介意拆下-1吗?