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
หรือไม่?