1.常用实现类结构
|-------- Map:双列数据,存储key-value对的数据
|-------HashMap:作为Map的主要实现类;线程不安全的,效率高;存储null的key和value
|------LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。(原因:在原的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。 对于频繁的遍历操作,此类执行效率高于HashMap。)
|-------TreeMap:保证照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序(底层使用红黑树).
|-------Hashtable:作为古老的实现类;线程安全的,效率低;不能存储null的key和value
|------Properties:常用来处理配置文件。key和value都是String类型
注:
- HashMap的底层:数组+链表 (jdk7及之前)
- 数组+链表+红黑树 (jdk 8)
2.存储结构的理解:
- Map中的key:无序的、不可重复的,使用Set存储所有的key —> key所在的类要重写equals()和hashCode() (以HashMap为例)
- Map中的value:无序的、可重复的,使用Collection存储所的value —>value所在的类要重写equals()
- 一个键值对:key-value构成了一个Entry对象。
- Map中的entry:无序的、不可重复的,使用Set存储所的entry
3.常用方法:
| 方法 | 作用 |
|---|---|
| put(Object key,Object value) | 添加 |
| remove(Object key) | 删除 |
| put(Object key,Object value) | 修改 |
| get(Object key) | 查询 |
| size() | 长度 |
| keySet() / values() / entrySet() | 遍历 |
本文详细介绍了Java中常用的Map实现类,如HashMap、LinkedHashMap、TreeMap和Hashtable,探讨了它们的内部结构、排序机制和核心方法,重点突出了不同场景下的选择和性能差异。
1208

被折叠的 条评论
为什么被折叠?



