Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java向量:clear vs removeAllElements方法_Java - Fatal编程技术网

Java向量:clear vs removeAllElements方法

Java向量:clear vs removeAllElements方法,java,Java,我是Java新手 对于向量——clear()或removeAllElements(),哪个更有效。我猜是removeAllElements,因为它保持容量不变(不释放内存),而clear()释放内存。根据应用情况,两者都是可取的 如果您能提供一些意见,我将不胜感激。谢谢 关于.removeAllElements()方法 "这个方法在中国是一样的 clear方法的功能 (这是清单的一部分 接口)。” 是在Java1.1中,自从Java1.4出现以来,新的接口就出现了,它使用函数clear()定义了

我是Java新手

对于向量——clear()或removeAllElements(),哪个更有效。我猜是removeAllElements,因为它保持容量不变(不释放内存),而clear()释放内存。根据应用情况,两者都是可取的

如果您能提供一些意见,我将不胜感激。谢谢

关于.removeAllElements()方法

"这个方法在中国是一样的 clear方法的功能 (这是清单的一部分 接口)。”

是在Java1.1中,自从Java1.4出现以来,新的接口就出现了,它使用函数clear()定义了一个通用接口

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


考虑向量的使用。ArrayList是不同步的,因此如果不同时从不同的线程访问列表,它会更快

当您担心效率时(很可能是因为错误的原因),根本不要使用
向量
,而是使用
列表
实现(例如
数组列表
)。如果您使用的是
Vector
,因为它的内部同步(我对此表示怀疑),请使用
synchronizedList

另外,
Vector.clear()
只调用
Vector.removeAllElements()
,因此没有功能上的区别,使用
Vector.clear()
时只需再调用一次函数。也就是说,如果必须使用
Vector
,请调用
Vector.clear()
,因为它遵循了更现代的
集合
界面,并且说明了更清晰的意图。

如JavaDoc中的:

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


所以它们是相同的
clear()
更好,因为它符合较新的Java Collections接口。

感谢您指出这一点。只是使用向量,因为我来自C++ STL背景。我将更多地研究列表。考虑使用<代码> ARARYLIST/<代码>作为<代码>向量<代码>是一个相当古老的学校-只供人们阅读旧的教科书。我做了更多的研究,并且换了工作。:)