isEmpty()的实现

3

我想要弄清楚一些基本的东西。当我在探索标准库ArrayList.java时,发现ArrayList有一个isEmpty()方法的实现。

ArrayList.java:

public boolean isEmpty() {
    return size == 0;
}

ArrayList扩展了AbstractList,而AbstractList又扩展了AbstractCollection。AbstractCollection已经有isEmpty的实现:
public boolean isEmpty() {
    return size() == 0;
}

我只是想理解这个逻辑。为什么ArrayList要实现已经实现的方法?这有什么用呢?

P.S. ArrayList也有size方法。

public int size() {
    return size;
}

可能是为了减少不必要的方法调用。 - shmosel
3
因为并不是每个集合都提供本地的size字段,而这是一种在这种情况下可用的专门化(或优化)。 - Elliott Frisch
效率和自我意识。 - Lyubomyr Shaydariv
1个回答

3
ArrayList版本是一种轻微但有效的优化。

2
[需要引用] - shmosel
你在Eclipse中如何查看ArrayList类?它是否在库中某个位置? - Nick Ziebert
1
好的,我想我现在弄明白了,谢谢!Nick Ziebert,我用Alt + B观察了屏幕上所有的声明。 - Nederes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接