gpt4 book ai didi

java - DefaultListModel 的 removeAllElements() 和 clear() 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:45 26 4
gpt4 key购买 nike

Java swing 中DefaultListModelremoveAllElements()clear() 方法有什么区别?

java docs for DefaultListModel说:-

public void clear()

Removes all of theelements from this list. The list willbe empty after this call returns(unless it throws an exception).

public void removeAllElements()

Removes all components from this listand sets its size to zero.

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

最佳答案

它们都是一样的。

DefaultListModel使用 Vector在引擎盖下。
稍后在重写 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);
}

}

关于java - DefaultListModel 的 removeAllElements() 和 clear() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6106631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com