Załóżmy, że utworzyłem jeden obiekt i dodałem go do mojego ArrayList
. Jeśli następnie utworzę inny obiekt z dokładnie tym samym wejściem konstruktora, czy contains()
metoda oceni te dwa obiekty jako takie same? Załóżmy, że konstruktor nie robi nic śmiesznego z danymi wejściowymi, a zmienne przechowywane w obu obiektach są identyczne.
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;
}
}
Czy w ten sposób class
należy wprowadzić contains()
zwrot, aby uzyskać zwrot true
?