Java向量:clear vs removeAllElements方法
我是Java新手 对于向量——clear()或removeAllElements(),哪个更有效。我猜是removeAllElements,因为它保持容量不变(不释放内存),而clear()释放内存。根据应用情况,两者都是可取的 如果您能提供一些意见,我将不胜感激。谢谢 关于.removeAllElements()方法 "这个方法在中国是一样的 clear方法的功能 (这是清单的一部分 接口)。” 是在Java1.1中,自从Java1.4出现以来,新的接口就出现了,它使用函数clear()定义了一个通用接口 使用clear(),因为它是现代API。这两个功能是等效的Java向量:clear vs removeAllElements方法,java,Java,我是Java新手 对于向量——clear()或removeAllElements(),哪个更有效。我猜是removeAllElements,因为它保持容量不变(不释放内存),而clear()释放内存。根据应用情况,两者都是可取的 如果您能提供一些意见,我将不胜感激。谢谢 关于.removeAllElements()方法 "这个方法在中国是一样的 clear方法的功能 (这是清单的一部分 接口)。” 是在Java1.1中,自从Java1.4出现以来,新的接口就出现了,它使用函数clear()定义了
考虑向量的使用。ArrayList是不同步的,因此如果不同时从不同的线程访问列表,它会更快
当您担心效率时(很可能是因为错误的原因),根本不要使用向量
,而是使用列表
实现(例如数组列表
)。如果您使用的是Vector
,因为它的内部同步(我对此表示怀疑),请使用synchronizedList
另外,Vector.clear()
只调用Vector.removeAllElements()
,因此没有功能上的区别,使用Vector.clear()
时只需再调用一次函数。也就是说,如果必须使用Vector
,请调用Vector.clear()
,因为它遵循了更现代的集合
界面,并且说明了更清晰的意图。如JavaDoc中的:
从中删除所有组件
向量并将其大小设置为零。这
方法在功能上是相同的
到clear()方法
所以它们是相同的
clear()
更好,因为它符合较新的Java Collections接口。感谢您指出这一点。只是使用向量,因为我来自C++ STL背景。我将更多地研究列表。考虑使用<代码> ARARYLIST/<代码>作为<代码>向量<代码>是一个相当古老的学校-只供人们阅读旧的教科书。我做了更多的研究,并且换了工作。:)