2011-05-07 59 views

回答

7

Vector:從來沒有,除非一個API需要它,因爲它是一個類,而不是一個接口。

List:這應該是你的默認類似數組的收集。這是一個界面,所以如果需要的話,任何東西都可以是List。 (也有很多List實現在那裏例如ArrayListLinkedListCopyOnWriteArrayListImmutableList,關於各種功能集)

Vector是線程,但這樣是Collections.synchronizedList()包裝。

array:很少,如果API需要的話。數組的另一個主要優點是當你需要一個固定長度的基元數組時,所需的存儲空間相當緊湊,而整數需要被裝箱到Integer對象中。

2

A Vector(或List)當您事先不知道要插入多少個元素時。

當你絕對知道該矢量整個生命中元素的最大數量是多少時array

由於在使用ListVector(任何關於此事的集合)時沒有高性能處罰,我總是選擇使用它們。他們的靈活性太重要,不能被考慮。

當我絕對需要時,我只使用arrays。例如:使用需要它們的API時。

0

首先,ArrayList比Vector更快(但不是線程安全的)。

事先知道長度並且不會發生太大變化(或根本不變)時,數組非常方便。

0

當聲明一個方法時,使用List

不要使用Vector,它是JDK的早期版本,並且已經過改進,可以與Collections一起使用。

如果存在對性能敏感的算法,則私有數組成員可能會有所幫助。如果需要返回它的內容或將它們傳遞給方法,通常最好在它周圍構建一個對象,或許像Arrays.asList(thePrivateArray)那樣簡單。對於線程安全列表:Collections.synchronizedList(Arrays.asList(thePrivateArray))。爲了防止修改陣列內容,我通常使用Collections.unmodifiableList(Arrays.asList(thePrivateArray))

相關問題