簡體   English   中英

Java Vector:clear vs removeAllElements方法

[英]Java Vector: clear vs removeAllElements method

我是Java的新手。

哪個更有效的Vector - clear()或removeAllElements()。 我猜想removeAllElements因為它保持容量不變(不釋放內存)而clear()釋放內存。 根據應用,可能需要任何一種。

我會很感激一些意見。 謝謝。

根據JavaDoc關於.removeAllElements()方法。

“這種方法在功能上與clear方法相同(它是List接口的一部分)。”

Vector在Java 1.1中,自Java 1.4以來,出現了新的Collection API ,定義了一個帶有clear()函數的通用List接口。

使用clear(),因為它是現代API。 兩種功能都是等效的。

順便說一句。 考慮使用ArrayList而不是Vector。 ArrayList不同步,因此如果不同時從不同的Threads訪問List,它會更快。

當您擔心效率時(並且您很可能出於錯誤的原因),請不要使用Vector ,而是使用List實現(例如ArrayList )。 如果您因為內部同步而使用Vector (我對此有疑問),請改用synchronizedList

另外, Vector.clear()只調用Vector.removeAllElements()因此沒有功能差異,使用Vector.clear()時只需再調用一次函數。 話雖這么說,如果你必須使用Vector ,請調用Vector.clear()因為它遵循更現代的Collection接口並聲明更清晰的意圖。

與JavaDoc for Vector.removeAllElements()中一樣

從此向量中移除所有組件並將其大小設置為零。 此方法的功能與clear()方法相同

所以它們完全相同。 clear()因為符合較新的Java Collections接口而更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM