3

java swing中的方法removeAllElements()clear()方法有什么区别?DefaultListModel

DefaultListModel的java 文档说:-

公共无效清除()

从此列表中删除所有元素。此调用返回后,列表将为空(除非它引发异常)。

公共无效删除所有元素()

从此列表中删除所有组件并将其大小设置为零。

所以两者基本上都从列表中删除了所有元素,那么有什么区别?如何决定何时使用哪个?

4

1 回答 1

4

他们都是一样的。

DefaultListModelVector在引擎盖下使用 a 。
稍后在重新编写 Vector 以适应 Collection API 时添加了 clear() 方法。

在 1.3 版中Collections API,它的入口Vector被重新编写以适应List界面。

为了使其向后兼容,他们只需将调用转发到可用且可能的旧现有方法。

编辑

来自 Java 源代码:

/**
 * 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);
        }

}
于 2011-05-24T06:42:13.787 回答