【发布时间】:2017-01-15 22:21:09
【问题描述】:
我试图弄清楚一些基本的事情。我在探索标准库 ArrayList.java 时发现 ArrayList 实现了方法 isEmpty()。
ArrayList.java:
public boolean isEmpty() {
return size == 0;
}
ArrayList 扩展 AbstractList 扩展 AbstractCollection。 AbstractCollection 也实现了 isEmpty:
public boolean isEmpty() {
return size() == 0;
}
我只是想了解逻辑?为什么 ArrayList 实现了已经实现的方法?干什么用的?
附: ArrayList 也有大小
public int size() {
return size;
}
【问题讨论】:
-
可能是为了去掉不必要的方法调用。
-
因为不是每个集合都提供本地的
size字段,并且在这种情况下它是一个specialization(或optimization)可用。 -
效率和自我意识。
标签: java inheritance arraylist is-empty