ArrayList 和 Vector

2018-07-03 15:24 更新

這兩個(gè)類都實(shí)現(xiàn)了List接口(List接口繼承了Collection接口).

他們都是有序集合,即存儲(chǔ)在這兩個(gè)集合中的元素的位置都是有順序的,相當(dāng)于一種動(dòng)態(tài)的數(shù)組

并且其中的數(shù)據(jù)是允許重復(fù)的

ArrayList與Vector的區(qū)別

  • Vector是線程安全的, 也就是線程同步的, 而ArrayList是線程序不安全的. 對(duì)于Vector&ArrayList, Hashtable&HashMap, 要記住線程安全的問(wèn)題, 記住Vector與Hashtable是舊的, 是java一誕生就提供了的, 它們是線程安全的, ArrayList與HashMap是java2時(shí)才提供的, 它們是線程不安全的.

  • ArrayList與Vector都有一個(gè)初始的容量大小, 當(dāng)存儲(chǔ)進(jìn)它們里面的元素的個(gè)數(shù)超過(guò)了容量時(shí), 就需要增加ArrayList與Vector的存儲(chǔ)空間, Vector默認(rèn)增長(zhǎng)為原來(lái)兩倍,而ArrayList的增長(zhǎng)策略在文檔中沒(méi)有明確規(guī)定(從源代碼看到的是增長(zhǎng)為原來(lái)的1.5倍).ArrayList與Vector都可以設(shè)置初始的空間大小, Vector還可以設(shè)置增長(zhǎng)的空間大小, 而ArrayList沒(méi)有提供設(shè)置增長(zhǎng)空間的方法.

總結(jié):即Vector增長(zhǎng)原來(lái)的一倍,ArrayList增加原來(lái)的0.5倍. Vector 線程安全, ArrayList 不是.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)