1. 简介
Map接口,是java提供的集合框架(collections framework)中的一组。不算严格意义上的“集合”,但提供了集合视图操作,故可当做“集合”来维护。
相对应的,另一组是Collection接口,其下包含List,Set,Queue等接口
按实现方式,常用的有HashMap
,LinkedHashMap
,TreeMap
。这些实现是非线程安全的,都提供了快速失败(fail-fast)的迭代器,当检测到并发修改时,抛出异常及时中断。
JAVA同时提供了线程安全的同步包装器,concurrent包,后续再单独介绍。
2. 概念
- 线程安全,并发情况
- fail-fast,避免在错误的道路上走的太远。程序正常运行情况下不应该出现。
- PECS,Producer Extends, Consumer Super。简单理解就是:
- 往里存数据,使用super。
- 从中取数据,使用extends。比如一个方法的返回值,使用方可以直接使用基类来接收返回值。或是一个工具方法的入参,方法内部使用基类型完成一些计算/处理。
- 理解如下几个指标:threshold、size、capacity
3. 源码
HashMap
- 允许nul