一尘不染

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

java

假设我创建一个对象并将其添加到我的对象中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


阅读 321

收藏
2020-03-03

共1个答案

一尘不染

ArrayList implements列表接口。

如果你在Javadoc中查找Listcontains方法,则会看到它使用该equals()方法来评估两个对象是否相同。

2020-03-03