public class Car
{
private String name;
public int id;
public Car(String name, int id)
{
this.name = name;
this.id = id;
}
@Override
public boolean equals(Object ob)
{
if (!(ob instanceof Car))
{
return false;
}
Car that = (Car)ob;
return this.id == that.id;
}
@Override
public int hashCode()
{
return id;
}
// this class also got getters and setters
それから私は別のクラスを得ました
public class CarList
{
private Collection<Car> cars;
public CarList()
{
cars = new HashSet<>();
}
public boolean insertCar(Car car)
{
return cars.add(car);
}
私の質問は: equals() および hashCode() メソッドを適切にオーバーライドする方法です。ここで、オブジェクトの比較と hashCode の計算のために 'id' および 'name' 属性を考慮します (したがって、同じ名前と ID を持つ 2 つのオブジェクトを持つ可能性はありません) - このコードでは、オブジェクトの比較に 'id' 属性のみを使用するため)?