在java中何時使用向量而不是數組,反之亦然?爲什麼?在java中何時使用向量而不是數組,反之亦然?
回答
Vector
:從來沒有,除非一個API需要它,因爲它是一個類,而不是一個接口。
List
:這應該是你的默認類似數組的收集。這是一個界面,所以如果需要的話,任何東西都可以是List
。 (也有很多List
實現在那裏例如ArrayList
,LinkedList
,CopyOnWriteArrayList
,ImmutableList
,關於各種功能集)
Vector
是線程,但這樣是Collections.synchronizedList()
包裝。
array:很少,如果API需要的話。數組的另一個主要優點是當你需要一個固定長度的基元數組時,所需的存儲空間相當緊湊,而整數需要被裝箱到Integer
對象中。
A Vector
(或List
)當您事先不知道要插入多少個元素時。
當你絕對知道該矢量整個生命中元素的最大數量是多少時array
。
由於在使用List
或Vector
(任何關於此事的集合)時沒有高性能處罰,我總是選擇使用它們。他們的靈活性太重要,不能被考慮。
當我絕對需要時,我只使用arrays
。例如:使用需要它們的API時。
首先,ArrayList比Vector更快(但不是線程安全的)。
事先知道長度並且不會發生太大變化(或根本不變)時,數組非常方便。
當聲明一個方法時,使用List
。
不要使用Vector
,它是JDK的早期版本,並且已經過改進,可以與Collections
一起使用。
如果存在對性能敏感的算法,則私有數組成員可能會有所幫助。如果需要返回它的內容或將它們傳遞給方法,通常最好在它周圍構建一個對象,或許像Arrays.asList(thePrivateArray)
那樣簡單。對於線程安全列表:Collections.synchronizedList(Arrays.asList(thePrivateArray))
。爲了防止修改陣列內容,我通常使用Collections.unmodifiableList(Arrays.asList(thePrivateArray))
。
- 1. 什麼時候應該使用元組而不是對象,反之亦然?
- 2. 何時通過指針使用數組,或反之亦然
- 3. XML到XLSX,反之亦然使用java
- 4. Resharper挑戰:使用.Mock()。返回()而不是setters,反之亦然
- 5. Hankaku與Zenkaku,反之亦然在Java中
- 6. 什麼時候應該使用模板而不是繼承,反之亦然?
- 7. 什麼時候應該使用NSURL而不是NSString,反之亦然?
- 8. Java - 使jCheckBox不可禁用或反之亦然,而不禁用它
- 9. 什麼時候在C++中使用虛函數而不是重寫是最有利的,反之亦然C++
- 10. REGEX_MATCH匹配PG而不是PG13,反之亦然
- 11. 將多維數組複製到矢量,反之亦然
- 12. 使用鏈表實現數組(反之亦然)
- 13. 通過PHP變量,反之亦然
- 14. PHP中的數字串,反之亦然
- 15. 從MinGW使用msysGit,反之亦然
- 16. mongodb的組值反之亦然
- 17. 如何使用Django的JavaScript變量,反之亦然?
- 18. 什麼時候應該在數組上使用對象,反之亦然?
- 19. 流爲什麼使用Seek(0L,SeekOrigin.Begin)而不是位置= 0或反之亦然
- 20. 使用類方法而不是init實例有什麼好處,反之亦然?
- 21. 爲什麼我們應該使用類而不是記錄,反之亦然?
- 22. 在JavaScript中通過Object創建數組(反之亦然)?
- 23. 如何不能寫入文件,而閱讀,反之亦然
- 24. 如何在Java applet中創建JFrame或反之亦然
- 25. 如何在Java中將POJO轉換爲Map,反之亦然?
- 26. 如何使UIView自上而下,反之亦然拖拽
- 27. NSImage cv :: Mat,反之亦然
- 28. hadoop mapreduce反之亦然
- 29. boost :: shared_ptr void *反之亦然
- 30. XAML到Html,反之亦然
可能重複[何時使用Java中的數組列表](http://stackoverflow.com/questions/1589813/when-to-use-a-list-over-an-array-in- JAVA) – McDowell 2011-05-07 22:20:30