[英]What is the difference between removeAllElements() and clear() for DefaultListModel?
[英]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.