你們好,我是Java最全面試題庫
的提褲姐
,今天這篇是面試系列的第八篇,主要總結了JavaSE中集合相關面試題,集合面試分爲四篇來說,畢竟是重中之重!這是第一篇,主要是一些基礎的Collection及List相關的面試題,第二篇主要講解Set集合,第三篇和第四篇主要講解Map集合。在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。java
單列集合:
面試
雙列集合:
數組
Collection:
是java.uitl
下的接口
,他是各類集合的父接口,繼承於它的接口主要有set 和list;安全
Conllecitons:
是個java.util
下的類
,是針對集合的工具類,提供一系列靜態方法對各類集合的搜索,排序,線程安全化等操做。工具
List list = new ArrayList()
;這句建立了一個 ArrayList 的對象後把上溯到了 List。此時它是一個List對象了,有些ArrayList 有可是 List 沒有的屬性和方法,它就不能再用了。ArrayList list=new ArrayList()
;建立一對象則保留了ArrayList 的全部屬性。因此須要用到 ArrayList 獨有的方法的時候不能用前者。
實例代碼以下:ui
List list = new ArrayList(); ArrayList arrayList = new ArrayList(); list.trimToSize(); //錯誤,沒有該方法。 arrayList.trimToSize(); //ArrayList裏有該方法。
ListIterator是List集合的特有取出元素方式spa
ListIterator中具有着對被遍歷的元素進行增刪查改的方法,能夠對元素進行逆向遍歷。線程
直接初始化ArrayList集合的初始化容量爲1萬。
但達到100萬以上乃至1000萬以上時,初始化容量方法效率會降低code
ArrayList和Vector都有一個初始的容量大小。
ArrayList 是一個可改變大小的數組,當更多的元素加入到ArrayList中時,其大小將會動態地增加。
內部的元素能夠直接經過get與set方法進行訪問,由於ArrayList本質上就是一個數組.
Vector和ArrayList在更多元素添加進來時會請求更大的空間。
Vector每次請求其大小的雙倍空間,而ArrayList每次對size增加50%.(Vector默認增長原來的一倍,ArrayList默認增長原來的0.5倍)對象
注意:默認狀況下ArrayList的初始容量很是小,因此若是能夠預估數據量的話,最好分配一個較大的初始值,這樣能夠減小調整大小的開銷。