从CLRS("算法导论")一书中,有几种散列函数,如mod,multiply等.
Java使用什么散列函数将密钥映射到插槽?
我看到Java语言中使用的哈希函数存在一个问题.但它没有回答这个问题,我认为这个问题的明确答案是错误的.它说hashCode()允许你为Hashtable做你自己的散列函数,但我认为这是错误的.
hashCode()返回的整数是Hashtble的真实密钥,然后Hashtable使用散列函数来散列hashCode().这个答案暗示的是Java让你有机会给Hashtable一个散列函数,但不,这是错误的.hashCode()给出真正的密钥,而不是散列函数.
那么Java使用的哈希函数究竟是什么呢?
HashMap objHashMap = new HashMap();
objHashMap.put("key1", "Value1");
objHashMap.put("key1", "Value2");
System.out.println(objHashMap.get("key1"));
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了“Value2”的方式和原因