Android 如果ArrayList包含不起作用

Android 如果ArrayList包含不起作用,android,Android,我现在正在开发一个有很多ArrayList的应用程序,它需要将它们与非列表数据进行比较。当我尝试这个方法fdata.containsdata2时,它总是返回false。ArayList包含名为“favdat”的类,如下所示:` public class favdat { public String product,term,note,link; } Data2的定义如下:favdat Data2=新的favdat; 我还尝试了retainall方法,它返回大小为0的列表。 我知道有些数

我现在正在开发一个有很多ArrayList的应用程序,它需要将它们与非列表数据进行比较。当我尝试这个方法fdata.containsdata2时,它总是返回false。ArayList包含名为“favdat”的类,如下所示:`

public class favdat {
    public String product,term,note,link;
}
Data2的定义如下:favdat Data2=新的favdat; 我还尝试了retainall方法,它返回大小为0的列表。 我知道有些数据是相等的

所以问题是如何判断fdata是否包含数据2?

您需要在favdat中定义一个名为equalsObject obj的方法,该方法将启用对象比较

以下是更详细的操作方法:

还有相关的线程在等,谈谈。
比较对象的默认实现是比较它们是否是相同的对象,因此具有完全相同属性的两个对象仍然不相等。您需要做的是重写hashCode和equals方法。例如:

public int hashCode() {
    return product.hashCode() * 31 + term.hashCode();
}

public boolean equals(Object o) {
    if (o instanceof favdata) {
         favdata other = (favdata) o;
         return product.equals(other.product) 
             && term.equals(other.term) 
             && note.equals(other.note) 
             && link.equals(other.link);
    } else {
        return false;
    }
}

在java中,类名通常以大写字母开头,因此这将是Favdat,而且您的代码通常更易于阅读,以保持字段声明的独立性。

谢谢!!你是个救命恩人,从昨天起我就一直在解决这个问题!