Jassa-Core icon indicating copy to clipboard operation
Jassa-Core copied to clipboard

hashCode function in util.HashMap returns same value for an integer and a string containing same integer

Open patrickwestphal opened this issue 10 years ago • 0 comments

The hashCode function of the util.HashMap class generates the same hash for, e.g. 23 and '23' (integer and string type, respectively). In this respect the function behaves differently than many other hash functions, e.g. in Node

> var md5 = require('MD5');
undefined
> md5(23)
'1fab1cffea9b6fd2f36bfb46e182fd77'
> md5('23')
'37693cfc748049e45d87b8c7d8b9aacd'

Python

>>> hash(23)
23
>>> hash('23')
6400038450057767

and R

> library(hashFunction)
> cityhash.64('23')
[1] 1301089509  153739053
> cityhash.64(as.integer(23))
[1]  1257865039 -2072067122

Moreover it breaks this test.

Is this behaviour intended or a bug?

patrickwestphal avatar Jan 12 '15 11:01 patrickwestphal