HashSet 与HashMap底层实现

【获奖公布】“我的2016”主题征文活动      程序猿全指南,让【移动开发】更简单!        【观点】移动原生App开发和HTML 5开发,你更看好哪个?     博客的神秘功能

HashSet 与HashMap底层实现

标签: hashmap
5410人阅读 评论(0) 收藏 举报
本文章已收录于:
分类:
学习笔记(7)
作者同类文章 X

1. HashSet底层通过包装HashMap来实现,HashSet在添加一个值的时候,实际上是将此值作为HashMap中的key来进行保存。

2. HashMap的底层实现是通过初始化化一个Entry数组来实现key、value的保存。

3. 在HashMap的Entry中有四个变量,key、value、hash、next,其中next用于在hash方法添加值冲突时候,所指向的下一个值。

4. 在HashMap中添加值步骤

    第一步,对key的hashcode进行hash计算,获取应该保存到数组中的index。

   第二步,判断index所指向的数组元素是否为空,如果为空则直接插入。

   第三步,如果不为空,则依次查找entry中next所指定的元素,判读key是否相等,如果相等,则替换久的值,返回。

   第四步,如果都不相等,则将此链表头元素赋值给待插入entry的next变量,让后将待插入元素插入到entry数组中去。

5. map遍历方法有两种,keyset 和Map.Entry

2
1
 
 

我的同类文章

学习笔记(7)
http://blog.csdn.net
  • nutch使用入门2016-04-08阅读270
  • 单点登录2015-10-28阅读452
  • servlet 学习2012-07-22阅读204
  • 策略模式学习2012-06-23阅读378
  • 软件架构师职责2015-11-07阅读446
  • Spring代码分析一:加载与初始化2012-09-10阅读7183
  • OSGI2012-07-15阅读230

参考知识库

更多资料请参考:
猜你在找
数据结构基础系列(5):数组与广义表 4.5.数组&字符串&结构体&共用体&枚举-C语言高级专题第5部分 C语言系列之 数组与算法实战 C语言系列之 数组强化与三级指针 C语言系列之 指针与数组总复习
Java中HashMap和HashSet存储机制 java-HashMap和HashSet源码分析 通过分析 JDK 源代码研究 TreeMap 红黑树算法实现 探索 ConcurrentHashMap 高并发性的实现机制 深入源码分析HashSet
关闭
查看评论

  暂无评论

* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap

转载于:https://www.cnblogs.com/jobs-lgy/p/6288715.html

你可能感兴趣的:(HashSet 与HashMap底层实现)