java swing中removeAllElements()
的{{1}}和clear()
方法有什么区别?
java docs for DefaultListModel说: -
public void clear()
删除所有 此列表中的元素。清单会 此调用返回后为空 (除非它抛出异常)。
和
public void removeAllElements()
从此列表中删除所有组件 并将其大小设置为零。
所以两者基本上都从列表中删除了所有元素,那么区别是什么?如何决定何时使用哪个?
答案 0 :(得分:4)
他们都是一样。
DefaultListModel
在引擎盖下使用Vector
稍后在重写Vector以适合Collection API的时候添加了clear()方法。
使用版本1.3 Collections API
进入'{1}},以便重新编写Vector
以适应List
界面。
为了使其向后兼容,他们只是将呼叫转发到现有的旧方法(如果可用的话)。可能的。
来自Java Source:
/** * Removes all components from this list and sets its size to zero. * <blockquote> * <b>Note:</b> Although this method is not deprecated, the preferred * method to use is <code>clear</code>, which implements the * <code>List</code> interface defined in the 1.2 Collections framework. * </blockquote> * * @see #clear() * @see Vector#removeAllElements() */
public void removeAllElements() {
int index1 = delegate.size()-1;
delegate.removeAllElements();
if (index1 >= 0) {
fireIntervalRemoved(this, 0, index1);
}
}