黑马程序员技术交流社区

标题: Map [打印本页]

作者: nullException    时间: 2019-4-4 09:14
标题: Map
Map



               首先判断数组 是否为null

               判断key是否为null

                用key 去计算key的hash值,通过key的hash值和数组长度 indexFor  --> 计算出来索引i

               遍历当前所找到的这个索引i 上边的元素,    去判断当前元素和存入的元素之间的hashCode 和eqauls 值是否相等,如果相等--> key 不变,value 覆盖

                 出了if ,addEntry 将 key ,value ,hash, i 传入

                  进行一个对应的集合扩容判断 --> createEntry 方法 key ,value ,hash, i 传入

                   将索引i 处的索引进行赋值 --> new Entry ,并将赋值的结果作为参数传递到new Entry中,new Entry 用 entry next 接受该参数,  new Entry 就指向了数组上的那个元素,接着,将new Entry 赋值给 数组table[i] 完事!

        链表 【】  对象 = new[] 链表

      比如hash冲突算法

                         hashMap 和hashTable

   

  hashTable 和hashMap的区别

                 1. 线程问题

                  2.null值null键

                  3.版本问题

                             hashTable  同步锁





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2