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

最新文章

  1. Java 找不到主类错误
  2. MFC设置静态文本框,编辑框等控件背景和字体颜色
  3. C++中各种容器的类型与特点
  4. LoC
  5. shell脚本学习积累笔记(第一篇)
  6. Android学习笔记(十四)方便实用的首选项-PreferenceActivity
  7. 交通银行万事达Y-POWER信用卡 普卡
  8. WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下?
  9. Nexon由Xsolla全球支付服务
  10. ZJOI2017 Day2
  11. js前端获取页面传递的参数
  12. 3Sum探讨(Java)
  13. Ubuntu16.04 添加 Docker用户组
  14. MySQL 基础知识梳理学习(六)----锁
  15. 3、if和while语句
  16. 用Pytorch训练线性回归模型
  17. (set)产生冠军 hdu2094
  18. linux c 编程 ------ 头文件及其作用
  19. Hadoop 2.x完全分布式安装
  20. Derek解读Bytom源码-Api Server接口服务

热门文章

  1. Apache Shiro 认证过程
  2. java对象和json对象之间互相转换
  3. flash/flex 编译错误汇总
  4. ios 做的一个三个数求平均数 最大数 最小数
  5. 解决win7和ubuntu双系统ubuntu不能上网的问题
  6. queue(),dequeue()
  7. storm serializable
  8. 全文检索工具推荐FileLocator
  9. 非常简单的oracle和mysql数据互传
  10. idea编译报错:未结束的字符串文字;非法的表达式;未结束的字符串字面值