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

织梦网站怎么做seo宁德网站开发

织梦网站怎么做seo,宁德网站开发,wordpress自动播放,安徽省建设工程39. 说一下 HashMap 的实现原理#xff1f; HashMap 是 Java 中使用非常普遍的一种基于散列的映射数据结构#xff0c;主要用于存储键值对。它允许使用任何非空对象作为键和值#xff0c;主要实现原理如下#xff1a; 数组 链表 红黑树#xff1a;HashMap 内部主要由一…39. 说一下 HashMap 的实现原理 HashMap 是 Java 中使用非常普遍的一种基于散列的映射数据结构主要用于存储键值对。它允许使用任何非空对象作为键和值主要实现原理如下 数组 链表 红黑树HashMap 内部主要由一个数组构成每个数组元素是一个链表或红黑树链表或红黑树用于存储具有相同散列码的键值对。散列函数当向 HashMap 中插入一个键值对时首先会使用散列函数计算键的散列码散列码决定了键值对在数组中的位置。索引计算通过散列码与数组长度的模运算散列码 % 数组长度得到该键值对应在数组中的索引位置。链表和红黑树如果两个不同的键具有相同的散列码它们会被存储在同一个数组索引位置对应的链表中。如果链表长度过长默认超过8则会转换为红黑树以减少搜索时间。键的唯一性HashMap 中键的唯一性是通过 equals() 方法和 hashCode() 方法来保证的。如果两个键的 hashCode() 返回相同的值并且 equals() 也返回 true则认为这两个键是相同的。扩容机制当 HashMap 中的元素数量达到一定的阈值容量*加载因子默认加载因子是 0.75HashMap 会进行扩容即创建一个新的更大的数组并将旧数组的内容重新计算索引并复制到新数组中这个过程称为“rehash”。 以下是一个简化的 HashMap 插入操作代码示例 public V put(K key, V value) {if (key null)return putForNullKey(value); // 键为null时特殊处理int hash hash(key.hashCode()); // 计算散列码int i indexFor(hash, table.length); // 计算索引位置for (EntryK,V e table[i]; e ! null; e e.next) {Object k;if (e.hash hash ((k e.key) key || key.equals(k))) {V oldValue e.value;e.value value;return oldValue;}}addEntry(hash, key, value, i); // 添加新条目return null; }上述代码简化了实际的实现但基本展示了 HashMap 的插入过程包括散列计算、查找链表、替换旧值或添加新节点等步骤。 40. 说一下 HashSet 的实现原理 HashSet 是 Java 中集合框架的一部分实现了 Set 接口。它基于 HashMap 实现用于存储无序且不重复的元素集合。以下是 HashSet 的实现原理 存储结构HashSet 内部使用 HashMap 来存储元素。在 HashMap 中元素以键值对Entry的形式存储其中键就是我们要存储的元素本身而值则是一个固定的常量。哈希函数当向 HashSet 添加一个元素时会使用这个元素自身的 hashCode() 方法来计算它的哈希值并通过这个哈希值来确定在哈希表中的存储位置。碰撞处理如果两个不同的元素具有相同的哈希值即发生了哈希碰撞HashSet 会利用链表在 JDK8 中当链表长度超过一定阈值时会转换为红黑树来处理这种情况。在链表或红黑树中元素按照插入顺序进行存储。唯一性保证对于每个要添加的元素HashSet 不仅仅检查其哈希值还会调用元素的 equals() 方法来确保没有重复元素被添加。如果元素的 equals() 方法返回 trueHashSet 将不会添加这个元素。 如果在对应位置上没有元素直接添加。如果有元素但 equals() 方法返回 false则会添加到链表或红黑树中。如果有元素且 equals() 方法返回 true则忽略添加操作。 以下是 HashSet 添加元素流程的简化版 public boolean add(E e) {return map.put(e, PRESENT) null; }这里的 map 是 HashSet 内部维护的 HashMap 实例而 PRESENT 是一个静态的常量对象作为所有键对应的值。 总结 HashSet 基于哈希表实现提供快速的查找、添加和删除操作。元素的唯一性由其 hashCode() 和 equals() 方法共同决定。HashSet 不保证元素的顺序且迭代顺序可能会随着元素数量的变化而变化。 领【150 道精选 Java 高频面试题】请go公众号码路向前 。
http://www.dnsts.com.cn/news/86828.html

相关文章:

  • 潍坊网站优化排名做质粒图谱的网站
  • 常州西站建设规划谷歌网站怎么打不开
  • 手表网站域名七牛cdn wordpress
  • 酒吧装修朔州seo
  • 企业宣传网站在哪里做个人网页设计硬件需求
  • 给网站做镜像邢台网站推广怎么做
  • 企业网站建设学习站长工具之家seo查询
  • 工信部如何查网站备案闵行18路
  • 网站的改版怎么做健康门户网站建设内容
  • 做网站推广的销售怎么打电话好听的公司名字大全
  • 做网站推广大概需要多少钱奉贤网站建设哪家好
  • 网站设计流程的步骤包括秦皇岛住房和城乡建设网官网
  • 伪原创嵌入网站电子商务网站建设和管理
  • ps做电商网站流程有没有免费做物流推荐的网站
  • 网站建设必须要服务器吗合肥网站的建设
  • 宁波电器网站制作网站开发案例及分析
  • 加强残联网站建设山西太原制作网站人有吗
  • 郑州模板网站建设策划公司微商城平台有哪些
  • 网站推广的渠道wordpress 搜索 多个词
  • 徐州网站平台电子商务网站建设怎么做
  • 广州嘉怡服饰有限公司网站建设长治公司网站建设
  • 川畅联系 做网站多少钱健身网站开发项目总结
  • 建网站跟建网店的区别网络推广是网络营销的基础对不对
  • 网站视觉设计广州黄埔建网站
  • 做高档衣服的网站上海中国建设银行网站
  • 网站动态标签php+mysql网站开发
  • 网站建设业务培训wordpress 发邮件
  • 如何在腾讯云做网站接单做效果图网站
  • 木鱼网站建设银行网站建设方案
  • 廊坊网站排名优化公司哪家好重庆免费微网站