Java中HashMap
发布日期:2021-06-29 18:38:33 浏览次数:2 分类:技术文章

本文共 1009 字,大约阅读时间需要 3 分钟。

文章目录

Java中HashMap

  • HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员
  • HashMap 是 Map 接口的常用实现类
  • HashSet 是 Set 接口的常用实现类。
  • HashMap 和 HashSet 实现的接口规范不同,
    • 但它们底层的 Hash 存储机制完全一样,
    • HashSet 本身就采用 HashMap 来实现的。

HashSet 和 HashMap 之间有很多相似

  • 对HashSet ,系统采用 Hash 算法决定集合元素的存储位置,这样保证能快速存、取集合元素;
  • 对HashMap ,系统 key-value 当成一个整体进行处理,系统总根据 Hash 算法计算 key-value 的存储位置,保证能快速存、取 Map 的 key-value 对。

介绍集合存储之前需要指出一点:

  • 虽然集合号称存储的是 Java 对象,但实际上并不会真正将 Java 对象放入 Set 集合中,只是在 Set 集合中保留这些对象的引用而言。
  • 也就是说:Java 集合实际上是多个引用变量所组成的集合,这些引用变量指向实际的 Java 对象。

集合和引用

  • 就像引用类型的数组一样,把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量。

  • 当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:

HashMap
map = new HashMap
(); map.put("语文" , 80.0); map.put("数学" , 89.0); map.put("英语" , 78.2);
  • HashMap采用“Hash 算法”来决定每个元素的存储位置。
  • 执行map.put(“语文” , 80.0); 时,系统调用"语文"的 hashCode()得到其 hashCode 值
  • 每个 Java 对象都有 hashCode(),通过该方法获得它的 hashCode 值。
    • 得到这个对象的 hashCode 后,系统根据该 hashCode 值来决定该元素的存储位置。

参考链接

  • https://blog.csdn.net/isazhao/article/details/5014091

转载地址:https://cyj666.blog.csdn.net/article/details/103253838 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java中BufferedReader类
下一篇:计清:6 传输层

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月05日 08时44分34秒