Java Vector:clear vs removeAllElements方法

时间:2011-03-27 00:32:07

标签: java

我是Java的新手。

对于Vectors更有效 - clear()或removeAllElements()。我猜想removeAllElements因为它保持容量不变(不释放内存)而clear()释放内存。根据具体应用,可能需要。

我很感激一些意见。谢谢。

4 个答案:

答案 0 :(得分:9)

关于。JavaDoc .removeAllElements()方法。

  

“这种方法完全相同   清除方法的功能   (这是列表的一部分   接口)。“

答案 1 :(得分:7)

Vector在Java 1.1中,自Java 1.4以来出现了新的Collection API,定义了一个带有clear()函数的通用List接口。

使用clear(),因为它是现代API。这两个功能都是等效的。

顺便说一下。考虑使用ArrayList而不是Vector。 ArrayList不同步,因此如果不同时从不同的Threads访问List,它会更快。

答案 2 :(得分:2)

如果您担心效率(并且很可能出于错误的原因),请不要使用Vector,而是使用List实施(例如{{ 1}})而不是。如果您使用ArrayList因为其内部同步(我对此有疑问),请改用Vector

此外,synchronizedList只调用Vector.clear(),因此没有功能差异,使用Vector.removeAllElements()时只需再调用一次函数。话虽如此,如果您必须使用Vector.clear(),请致电Vector,因为它符合更现代的Vector.clear()界面,并表明更清晰的意图。

答案 3 :(得分:1)

Vector.removeAllElements()的JavaDoc一样:

  

从中删除所有组件   矢量并将其大小设置为零。这个   方法在功能上是相同的   到clear()方法

所以他们是完全相同的。 clear()因为符合较新的Java Collections界面而更好。