title: Hashing a set of integers in an order independent way
body: <p>I want to hash a set of integers such that the order of the integers don't have an effect on the computed hash value. i.e. <code>H([32224,12232,564423]) == H([564423,32224,12232])</code>. </p>
  
  <p>The number of unique sets will be in the range of a few millions. Speed is <strong>very important</strong>, but I need to know the upperbound on collisions with a chosen approach. </p>
  
  <p>Wikipedia has a good section on <a href="https://en.wikipedia.org/wiki/Universal_hashing#Hashing_vectors" rel="noreferrer">hashing vectors</a>, but I don't understand the math behind it to confidently implement them in code. I would appreciate if someone can explain the math involved with some code. Ideally, I would like the final hash to be of 32 bits. If it's of any use - I'll be implementing this in Java.</p>
  
  <p><strong>Update</strong>: I'm specifically looking to avoid sorting of the integers in the set, because of performance reasons (operating on lots of such sets).</p>