根据这个答案,粗略地说,如果我们有一个学生对象的课堂对象数组,类[索引]!=学生1。我相信这是我在实现等于方法将数组[索引]对象与另一个对象进行比较时犯的错误。我相信数组[索引]和我正在比较的对象是相同的。
下面的代码显示了我的getNumStudents方法,在该方法中,我尝试计算一个学生id在一个班级中出现的次数。ID代表他或她喜欢的品牌鞋(课后练习)。这个方法在我的教室对象类中,它实现了一个接口。
@Override
public int getNumStudents(T anEntry) {
int count = 0;
for (int index = 0; index < numberOfEntries; index++) {
if (roster[index].equals(anEntry)) )
{
counter++;
}
}
return count;
}
我的equals方法就是这样,并在学生课堂上实现:
public boolean equals(Student student) {
if (this == student)
{
return true;
}
if (student == null)
{
return false;
}
if (this.getID() != student.getID())
{
return false;
}
return true;
}
我不知道我是否正确地进行了哈希代码覆盖,但这里是(在学生课堂上):
@Override
public int hashCode() {
int result = 17;
result = 31 * result + studentID;
return result;
}
我已经缩小了bug最有可能在这里:
if (roster[index].equals(anEntry)) )
明确地
roster[index].equals(anEntry))
我应该调用什么,或者我应该如何调整我的getNum的学生(T anEntry)方法,以正确地返回在Classroom对象数组中具有特定ID(代表鞋子类型)的学生的数量?
您的< code>equals签名错误。
< code>equals方法的正确签名必须如下所示。
public boolean equals(Object other)
然后在方法中,您应该检查它是否是可比较的类型,如果您确实需要它是 Student
类型,则必须检查这一点并返回 false,否则返回 false
。
在您的情况下,这将是实现所需的最小更改:
public boolean equals(Object other)
{
if (this == other)
{
return true;
}
// This also works if `other` is `null`
if (!(other instanceof Student))
{
return false;
}
// Now we cast it to `Student`
final Student student = (Student) other;
if (this.getID() != student.getID())
{
return false;
}
return true;
}
我已经被覆盖了hashcode和equals以查找具有相同开始日期和关闭日期的值。我得到了重复对象的类似哈希代码。当等同于这些对象时,我得到了布尔值“假”。在我的理解中,对象==对象比较对象的引用,即使引用是相同的;代码返回假。你能帮我理解是什么问题吗?我在下面发布了我的代码: Main.java 输出: 检查客户对象引用:Customer@643 对象引用(位于Map中):[Customer@6
我正在尝试声明和初始化一个保存类数组 这是我用来解决项目内存管理问题的示例。我可以声明指针,但无法初始化它。 收到的错误: 对非常量表达式函数“void*operator new”的调用std::unique_ptr ship_crew_members=std::make_unique
如果两个集合包含相同的对象,如何进行比较? 当然会打印错误。
本文向大家介绍js对象如何深比较?相关面试题,主要包含被问及js对象如何深比较?时的应答技巧和注意事项,需要的朋友参考一下 之前其实没听说过,但是刚刚搜索到了 我还是不复制粘贴了 原文地址
我的要求是,为了应用程序审计的目的,我希望比较两个BO对象,并返回一个obj diff作为Json字符串将详细信息存储到审计表中。在我的例子中,我实现了一个hibernate拦截器,它将监视BO操作。这部分工作得很好。但是当试图将BO对象与Javers进行比较时,会出现一个名为 下面是我的示例hibernate结果类 注意:BO对象在运行时可以包含值。
问题内容: 我有两个像这样的对象数组: 我想知道数组是否相等。我定义的是相等的,因为array1中的每个值都与array2中该位置的值相同。因此,这两个数组将相等。 为什么最好找出这两个数组是否相等? 不是一个很深的等式,所以它是行不通的,我不知道是否遍历每个元素并进行比较是解决此问题的最佳,最有效的方法。有没有人有更好的建议? 编辑:我需要一个可以放入嵌套数组的等于。 问题答案: 使用。这项功能