Hi!
I think the problem was not solved yet.
I had a original key like
[0,0,0,0,1,80,-111,1,-35,-28,93,120,-123,-40,-63,-113,5,56,126,-87,-90,-44,-125,107,-105,53,-43,-48]
and mod=48
The bucket for this seems to be negative.
I think the mask is wrong.
(b & 0xff) = b
I think that having (b & 0x7f) is correct, because in this manner you
have only positive values.
Also, I did the performance test what I had talk about and it seems
that your solution is 2 time faster that using Arrays.hashcode.
Regards,
Ionut