AbstractCollection在进行子类化时,我仍然必须实现size(),即使(我相信)有一个合理的正确(虽然不是高性能)默认实现:
public int size() {
int count = 0;
for (Iterator<E> i = iterator(); i.hasNext();) {
i.next();
count++
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
为什么设计师不包含默认实现size()?他们是否试图强迫开发人员有意识地考虑这种方法,希望开发人员能够提供性能优于默认值的实现?