What's wrong with equals?
The docs states that it returns true if both are of same size and if containsAll()
returns true, sounds pretty efficient to me.
In any case, you should never compare the hashcode to test for equality, two different objects might have the same hashcode.
Update: As noted in the comments (and in assylias' answer) the hashcode can be used as part of the equality test logic (different hashcodes imply different objects - but not the reverse). My remark above means that the hashcode alone is not (in general) enough.