【问题标题】:More exhaustive way of comparing objects比较对象的更详尽的方法
【发布时间】:2019-03-18 14:25:27
【问题描述】:

我必须为搜索引擎实现数据结构。所以我的 DS 中有不同类型的对象。我有一个通用链接列表,我只想将那些现在不属于列表的元素添加到列表中。有没有一种方法可以更详尽地比较两种对象类型,因为 .equals() 每次都返回 true?

public Boolean IsMember(T o) {
    NodeX<T> temp = head;

    while(temp!= null) {
        if (temp.data.equals(o))
            {//System.out.println("exec");
            return true;}
        temp = temp.next;
    }

    return false;
}

这是 LinkedList 的 isMember 方法。这仅适用于字符串类型。我可以对此进行哪些更改以使其适用于所有对象类型?

如果我为我正在使用的不同对象定义一个 isEqual 方法,我该如何在这里使用这些方法?

【问题讨论】:

  • 如果我理解正确,你可以覆盖等于并比较你想要的。
  • 我的链表中有一个 isMember 方法。我在那里使用equals。我怎样才能覆盖它?
  • 也许我理解错了......但是您可以从对象本身覆盖 equals 方法并在那里进行比较。否则,请为您的问题添加一个小代码示例,认为这会有所帮助:)
  • 我编辑了这个问题。你现在能提出什么建议吗?
  • “temp.data”是什么类型

标签: java object


【解决方案1】:

您必须实现您的 .equals() 版本。为了比较列表,这里有一些问题会对您有所帮助

returning difference between two lists in java

Simple way to find if two different lists contain exactly the same elements?

Java Compare Two Lists

【讨论】:

    【解决方案2】:

    每当您为不同的对象定义 isEqual 方法时,只要调用 isEqual 就会使用该方法,例如在 isMember 中。

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      相关资源
      最近更新 更多