本文章已收录于:
分类:
学习笔记(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
参考知识库
更多资料请参考:
猜你在找
Java中HashMap和HashSet存储机制
java-HashMap和HashSet源码分析
通过分析 JDK 源代码研究 TreeMap 红黑树算法实现
探索 ConcurrentHashMap 高并发性的实现机制
深入源码分析HashSet
关闭
核心技术类目
全部主题
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
暂无评论