说我创建一个对象并将其添加到我的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列表接口(interface)。

如果您通过List方法查看Javadoc for contains ,您会发现它使用equals()方法来评估两个对象是否相同。

10-06 16:21
查看更多