Write a method named equals2
that could be placed inside the HashSet2
class.
This method accepts any object reference o
as a parameter and returns true
if o
refers to another HashSet2
object containing exactly the same set of items as this set.
It does not matter if the two sets have the same internal hash table length or element ordering in their linked lists, so long as exactly the same overall elements are stored in both sets; no more, no less.
For example, if a set s1
contains [a, b, c]
and another set s2
contains [b, c, a]
, the call of s1.equals(s2)
would return true
.
If set s2
instead contained [b, c, d]
or [b, c]
or [b, c, d, a]
or any other contents not exactly equal to s1
's set of elements, your method would return false
.
You are allowed to call methods on your set and/or the other set as needed. Do not modify the set passed in. This method should run in O(N) time where N is the number of elements in either of the two sets.
(NOTE: To be compatible with our site and avoid conflicting with Java's java.util.HashSet
, our HashSet
is renamed HashSet2
here, and equals
is renamed to equals2
to avoid conflicting with Java's existing equals
method.)