Digamos que eu crie um objeto e o adicione ao meu ArrayList
. Se eu criar outro objeto com exatamente a mesma entrada do construtor, o contains()
método avaliará os dois objetos como sendo os mesmos? Suponha que o construtor não faça nada de engraçado com a entrada e as variáveis armazenadas nos dois objetos são idênticas.
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;
}
}
É assim que o class
deve ser implementado para ter contains()
retorno true
?