Java HashMap

104 阅读1分钟

HashMap

HashMap的特点

  • HashMap是Map里面的一个实现类
  • 没有额外要学习的特有方法,直接使用Map里面的方法就可以了
  • 特点都是由键决定的:无序、不重复、无索引
  • HashMap跟HashSet底层原理是一模一样的,都是哈希表结构

HashMap添加元素原理

  • 当调用put方法时,首先会创建一个Entry对象,里面记录着要添加的键和值
  • 利用键计算哈希值,跟值无关
  • 如果哈希值一样(哈希碰撞),就会调用equals方法比较键的属性值,如果属性值相同,那么就会覆盖原有的Entry对象,这就是put方法中覆盖功能
  • 其他原理和HashSet一模一样

小结

  • HashMap底层是哈希表结构的
  • 依赖hashCode方法和equals方法保证键的唯一
  • 如果键存储的是自定义对象,需要重写hashCode和equals方法
  • 如果值存储的是自定义对象,不需要重写hashCode和equals方法