You need to override both the equals() and hashCode() methods if you want to remove anything like that But by the definition of equality your class provides (see Object#equals()), all objects in the List are different from that object.
You can't use identity hash code or similar. You will have to override equals() and hashCode().
Resources: Joshua Bloch Effective Java (in the 3rd edition, pages 37‑54), Angelika Langer (search: make sure to get the English version) and artima.com (Odersky, Spoon and Venners). Although Bloch uses a surprisingly complicated implementation of hashCode(), I think his is the best resource.
Die Fledermaus does not fear such a tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop