【问题标题】:Implementation of isEmpty()isEmpty() 的实现
【发布时间】: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


【解决方案1】:

ArrayList 版本是次要但有效的优化。

【讨论】:

  • [需要引用]
  • 你如何在eclipse中实际查看ArrayList类?它在图书馆的某个地方吗?
  • 好吧,我想我现在明白了,谢谢! Nick Ziebert,我正在用 Alt + B 观看我在屏幕上看到的所有声明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
相关资源
最近更新 更多