当前位置: 首页 > news >正文

响应式网站 开发网校培训

响应式网站 开发,网校培训,系部 网站建设方案,美业营销策划公司HashMap 的 put 方法是一个常用的操作#xff0c;它将一个键值对插入到哈希表中。下面是 put 方法执行的详细流程#xff0c;包括各个步骤的解释#xff0c;并附上相应的代码片段。 1. 检查键是否为 null 如果传入的键为 null#xff0c;HashMap 会特别处理这种情况…HashMap 的 put 方法是一个常用的操作它将一个键值对插入到哈希表中。下面是 put 方法执行的详细流程包括各个步骤的解释并附上相应的代码片段。 1. 检查键是否为 null 如果传入的键为 nullHashMap 会特别处理这种情况因为 null 是允许作为键的但是它会在特殊位置通常是数组的第一个位置存储。 if (key null) {return putForNullKey(value); }2. 计算哈希值 对于非 null 的键HashMap 会首先计算出该键的哈希值。哈希值的计算是通过调用键的 hashCode() 方法再经过一定的扰动处理以减少哈希冲突。 int hash hash(key.hashCode()); int index indexFor(hash, table.length);这里的 hash() 是一个方法用于对键的哈希值进行扰动indexFor() 方法则用来根据计算出的哈希值找到数组中的位置。 3. 查找位置 接下来HashMap 会根据计算出的索引index来查找对应的桶数组位置。如果该位置已经存在元素则会检查该位置的链表或红黑树结构查看是否已经存在相同的键。 for (EntryK,V e table[index]; e ! null; e e.next) {K k;if (e.hash hash ((k e.key) key || key.equals(k))) {V oldValue e.value;e.value value;return oldValue;} }4. 插入新元素 如果在相应位置没有找到相同的键HashMap 会将新的键值对插入到桶中。如果该位置为空直接插入该元素。如果该位置已经存在链表或红黑树则会把新元素加入到链表头部或树中。 createEntry(hash, key, value, index);5. 扩容 HashMap 会根据当前的负载因子默认是 0.75来判断是否需要扩容。如果当前元素数量超出了负载因子的限制HashMap 会进行扩容操作这会重新计算每个元素的位置并将元素重新插入到新的数组中。 if (size threshold)resize();完整代码示例 public V put(K key, V value) {if (key null) {return putForNullKey(value);}int hash hash(key.hashCode());int index indexFor(hash, table.length);for (EntryK,V e table[index]; e ! null; e e.next) {K k;if (e.hash hash ((k e.key) key || key.equals(k))) {V oldValue e.value;e.value value;return oldValue;}}createEntry(hash, key, value, index);if (size threshold) {resize();}return null; }private int hash(int h) {h ^ (h 20) ^ (h 12);return h ^ (h 7) ^ (h 4); }private int indexFor(int hash, int length) {return hash (length - 1); }private void createEntry(int hash, K key, V value, int bucketIndex) {EntryK,V e table[bucketIndex];table[bucketIndex] new Entry(hash, key, value, e); }private void resize() {// 扩容的具体实现 }关键点总结 哈希值计算使用 hashCode 和扰动函数来减少冲突。桶的查找通过数组索引查找对应位置如果发生冲突使用链表或红黑树来存储多个元素。元素插入如果该位置没有找到相同的键插入新元素。扩容机制当负载因子达到一定比例时HashMap 会扩展数组并重新散列元素。 这个过程对于每次调用 put 都是会依次执行的确保 HashMap 的高效插入与查询操作。
http://www.hkea.cn/news/14561352/

相关文章:

  • 做卖东西的网站多少钱wordpress创建xml
  • 有哪些做ppt用图片的网站微信聚合聊天crm系统
  • 阳江市建设网站做网站的不足 心得
  • 仿牌网站crm软件系统 运用
  • 网站怎么做seo优化百度小程序免费制作
  • 关于网站建设工作的通报专门做app的公司有哪些
  • 做电商网站必需知道qc阿里云网站怎么备案域名
  • 自己做网站美工注册域名的网站
  • 网深圳网站优化建筑网站do
  • 城乡建设厅建设网站阿里云自助建站
  • 商丘做网站张网站开发属于大学那个专业
  • 网站建设及域名网站遭到攻击
  • 网站策划软件服饰网站建设规划书
  • 大连公路建设有限公司网站asp网站开发技术总结与收获
  • 网站建设与单位干部作风的关系wordpress 网站标题图
  • 网站电话转化率省住房和城乡建设厅官方网站
  • 网站 做 app开发工具uemo网站平台建设
  • 衡水网站排名优化公司卖磁铁的网站怎么做
  • 企业网站的推广方法wordpress 框架嵌入
  • 做网站体会小程序制作流程及步骤
  • 网站建设算固定资产吗浙江省信息港
  • 漳州最便宜的网站建设价格vis设计机构
  • wordpress管理配色seo是指搜索引擎营销
  • 肥东县建设局网站中文个人网站模板下载
  • 徐州有哪些制作网站的公司鹤山做网站公司
  • 贵阳网站制作计划做网站代理拉不到人
  • 建站公司合同模板apache设置网站网址
  • 中国建设银行手机银行网站资质做网站需要用到什么
  • 河北省建设执业资格注册管理中心网站国外摄影网站推荐
  • 怎么申请免费国内免费网站域名查询ip爱站网