Re: Get reference to object in Set

neuneudr@xxxxxxxx wrote:
On Mar 5, 5:24 pm, Knute Johnson <nos...@xxxxxxxxxxxxxxxxxxxxxxx>
Patricia Shanahan wrote:
I think this question has already been asked, but I have failed to work
out a good search term to find the previous discussion.
Suppose I have a Set<MyType> mySet and a MyType myObject.
mySet.contains(myObject) is true. I need a reference to the equal object
that is already in mySet.
Currently, I do this by maintaining a Map<MyType,MyType>. When the get
call returns null I do a myMap.put(myObject, myObject), so that future
get calls with equal objects will return the actual reference.
Is there a better way to handle this? Any way to make a Set return a
reference to the object it contains?
How does .contains() find the Object? I would guess that in an
unordered Set it must iterate.

Isn't kinda the whole point of a set/map to use hashes
to have constant time for such operations?

True for HashSet and HashMap, but not necessarily true in general.
TreeSet, for example, has O(log n) time for contains.