ArrayList的contains()方法如何评估对象?

问题:

说我创建一个对象并将其添加到我的ArrayList。如果我然后创建一个完全相同的构造函数输入的另一个对象,contains()方法将评估两个对象是否相同?假设构造函数对输入不做任何有趣的事情,并且存储在两个对象中的变量是相同的。

ArrayList<Thing> basket = new ArrayList<Thing>();  
Thing thing = new Thing(100);  
basket.add(thing);  
Thing another = new Thing(100);  
basket.contains(another); // true or false?
class Thing {  
    public int value;  

    public Thing (int x) {
        value = x;
    }

    equals (Thing x) {
        if (x.value == value) return true;
        return false;
    }
}

class应该如何实现contains()返回true

回答:

ArrayList implements列表界面。
如果您使用contains方法查看Javadoc for List,您将看到它使用equals()方法来评估两个对象是否相同。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How does a ArrayList’s contains() method evaluate objects?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 3