java学习# map 的哈希函数
2015-01-26 17:59
162 查看
因此,一个基于哈希的 Map 的基本 put() 方法可能如下所示
public Object put(Object key, Object value) { //我们的内部数组是一个 Entry 对象数组 //Entry[] table; //获取哈希码,并映射到一个索引 int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % table.length; //循环遍历位于 table[index] 处的链接列表,以查明 //我们是否拥有此键项 — 如果拥有,则覆盖它 for (Entry e = table[index] ; e != null ; e = e.next) { //必须检查键是否相等,原因是不同的键对象 //可能拥有相同的哈希 if ((e.hash == hash) && e.key.equals(key)) { //这是相同键,覆盖该值 //并从该方法返回 old 值 Object old = e.value; e.value = value; return old; } } //仍然在此处,因此它是一个新键,只需添加一个新 Entry //Entry 对象包含 key 对象、 value 对象、一个整型的 hash、 //和一个指向列表中的下一个 Entry 的 next Entry //创建一个指向上一个列表开头的新 Entry, //并将此新 Entry 插入表中 Entry e = new Entry(hash, key, value, table[index]); table[index] = e; return null; }
相关文章推荐
- C++中对hash_map自定义哈希函数和比较函数的理解
- 黑马程序员——java学习9(毕15-16)——TreeSet、Map、泛型、字符排序
- C++中对hash_map自定义哈希函数和比较函数的理解
- Java学习(2)-Map的遍历
- 哈希函数、Map-Reduce与Hadoop
- hash_map unordered_map 两种哈希函数用法 leetcode454
- C++ map表的应用
- java中list、set和map 的区别
- 在js写一个Map
- The type java.util.Map$Entry cannot be resolved. It is indirectly referenced。。.相似的错误
- Java遍历Map集合方法
- Fastjson json to map
- STL之map
- ibatis使用心得——返回Map的Map
- Map
- golang源码解读之map
- MongoDB学习七--MongoDB的Map-Reduce示例
- pair 和 map结合应用——POJ 3096
- STL中map的使用
- c++ map相关