HashMap的特性
1.考察目标
- HashMap底层的数据结构
- HashMap和HashTable的区别
2.题目分析
- Map集合的特点
- Map是一个双列集合,将键映射到值的对象
- Map集合的数据结构,只针对键有效,跟值没有关系
- 一个映射不能包含重复的键,每个键最多只能影射到一个值
- HashMap集合的数据结构是什么?
- 哈希表结构:数组+链表
- 通过哈希表结构配合对象的hashCode和equals方法就可以保证键的唯一性
- 建议:今后键的位置如果存储的是自定义类型,不要忘记重写hashCode与equals方法
- 哈希表结构:数组+链表
- HashMap与HashTable的区别是?
- HashMap是jdk1.2版本版本出现的,允许存储null键与null值
- 不同步(线程不安全):效率高
- HashTable是jdk1.0版本出现的,不允许出现null键与null值
- 同步(线程安全的):效率低
- HashMap是jdk1.2版本版本出现的,允许存储null键与null值
3.问题扩展
- jdk8版本之后,在哈希表结构中引入了二叉树
- 问题:二叉树的出现有什么好处?
- 提高了查询效率
- 问题:二叉树的出现有什么好处?
4.应用场景
- 统计商品出现的次数