]> source.dussan.org Git - sonarqube.git/blob
7c01154ef264aa31a7b39267b9927f1f212426aa
[sonarqube.git] /
1 <p> This code computes a hashCode, and then computes
2 the remainder of that value modulo another value. Since the hashCode
3 can be negative, the result of the remainder operation
4 can also be negative. </p>
5 <p> Assuming you want to ensure that the result of your computation is nonnegative,
6 you may need to change your code.
7 If you know the divisor is a power of 2,
8 you can use a bitwise and operator instead (i.e., instead of
9 using <code>x.hashCode()%n</code>, use <code>x.hashCode()&amp;(n-1)</code>. 
10 This is probably faster than computing the remainder as well.
11 If you don't know that the divisor is a power of 2, take the absolute
12 value of the result of the remainder operation (i.e., use
13 <code>Math.abs(x.hashCode()%n)</code>
14 </p>