From the Java 6 TreeSet Documentation:
boolean remove(Object o): Removes the specified element from this set if it is present.
remove(), like get() is required to work when given an equal element (in terms of .equals()). In Java, it is possible (and in some cases, required) for objects of different classes to be equal. Hence, you shouldn't restrict the type.
remove()
get()
.equals()