我是Java的新手。
对于Vectors更有效 - clear()或removeAllElements()。我猜想removeAllElements因为它保持容量不变(不释放内存)而clear()释放内存。根据具体应用,可能需要。
我很感激一些意见。谢谢。
答案 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界面而更好。