Hmm, how can there be collissions ? If it's the same object class then each object has its value-unique hashcode, if they're equal then they're equal.... unless String's hashcode isn't that reliable.

Or can you suggest a mathematical hashcode for id and data value ?