AbstractMap

AbstractMap

一、定义

1
2
public abstract class AbstractMap<K,V> implements Map<K,V> {
}

AbstractMap 就是接口 Map 的模板实现类,提供一些已经实现好的方法,后续子类继承时就不用重复写了。

二、实现

2.1 entrySet

实际上,AbstractMap 里面的方法实现都是依赖 entrySet() 方法来实现的,具体看看代码吧:

 AbstractList

AbstractList

一、定义

AbstractList 是一个抽象类,是一个 List

1
2
3
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
...
}

二、属性

AbstractList 中,有一个特殊的属性 modCount,用于统计列表被修改的次数(例如删除、添加等)。

1
protected transient int modCount = 0;

modCount 属性的作用是为了在并发修改列表时,能够快速失败(fail-fast)并抛出并发异常。例如多个线程同时修改列表时,就有可能对正在访问列表元素的线程造成影响,modCount 属性可用于判断当前列表是否是异常状态。