重点:放在 HashMap 集合 key 部分的元素,以及放在 HashSet 集合的元素,需要同时重写 hashCode 和 equals 方法
Java进阶-哈希表数据结构
HashMap 集合底层是哈希表/散列表的数据结构
哈希表是一个怎样的数据结构呢?
- 哈希表是一个数组和单向链表的结合体
- 数组:在查询方面效率很高,随机增删方面效率很低
- 单向链表:在随机增删方面效率很高,在查询方面效率很低
- 哈希表将以上的两种数据结构融合在一起,充分发挥它们各自的优点
Java进阶-遍历 Map 集合
Map 集合的遍历
- 获取所有的 key,通过遍历 key,来遍历 value
- 迭代器
- foreach
Set<Map.Entry<K, V>> entrySet()
将 Map 集合直接全部转换成 Set 集合,Set 集合中元素的类型是:Map.Entry- 迭代器
- foreach,这种方式效率比较高,因为获取 key 和 value 都是直接从 node 对象中获取的属性值,比较适合于大数据量
Java进阶-Map 接口常用方法
java.util.Map 接口中常用的方法:
- Map 和 Collection 没有继承关系
- Map 集合以 key 和 value 的方式存储数据:键值对
key 和 value 都是引用数据类型
key 和 value 都是存储对象的内存地址
key 起到主导的地位,value 是 key 的一个附属品