I am working on a different assignment, but I just use the record id for the equals method. This makes things realy easy.
However, in my assignment (URLyBird 1.3.2) two records are not equal if all data in the record is the same. I don't know if this is also the case for your data model, e.g. two contractors with the same name, location and speciality that are actually two different records in the db.