Скажем, я создаю один объект и добавляю его в свой 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
?