Write a method named hashCode
that could be placed inside the HashSet2
class.
This method computes and returns a hash code for an entire set.
(Yes, that probably seems odd, but a set itself could be added as an element of another hash-based set or map.)
To compute your set's hash code, traverse all of its elements and add up the elements' hash codes into one sum and return this sum.
Do not "scale up" the elements' hash codes by multiplying them by some multiplier.
For example, if a set s1
contains [40, -5, 22]
, the call of s1.hashCode()
would return 40+(-5)+22 or 57
.
If a set s2
contains [a, b, c]
, and the hash codes of "a"
, "b"
, and "c"
are 97, 98, and 99 respectively, the call s2.hashCode()
would return 97+98+99 or 294
.
You are allowed to call methods on your set (but you shouldn't need to).
Do not modify the set.
This method should run in O(N) time where N is the number of elements in the set.
(NOTE: To be compatible with our site and avoid conflicting with Java's java.util.HashSet
, our HashSet
is renamed HashSet2
here.)