A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nullException 初级黑马   /  2019-4-4 09:14  /  866 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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  同步锁

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马