HashMap
HashMap的特点
- HashMap是Map里面的一个实现类
- 没有额外要学习的特有方法,直接使用Map里面的方法就可以了
- 特点都是由键决定的:无序、不重复、无索引
- HashMap跟HashSet底层原理是一模一样的,都是哈希表结构
HashMap添加元素原理
- 当调用put方法时,首先会创建一个Entry对象,里面记录着要添加的键和值
- 利用键计算哈希值,跟值无关
- 如果哈希值一样(哈希碰撞),就会调用equals方法比较键的属性值,如果属性值相同,那么就会覆盖原有的Entry对象,这就是put方法中覆盖功能
- 其他原理和HashSet一模一样
小结
- HashMap底层是哈希表结构的
- 依赖hashCode方法和equals方法保证键的唯一
- 如果键存储的是自定义对象,需要重写hashCode和equals方法
- 如果值存储的是自定义对象,不需要重写hashCode和equals方法