1. 程式人生 > >小談面試時面試官為什麼問ArrayList,LinkedList與List的不同

小談面試時面試官為什麼問ArrayList,LinkedList與List的不同

當你做為一個技術面試官面試應聘者時,你總是想嘗試能全面瞭解這個面試者的方方面面。技術,背景,性格都是被重點關注的。面試官想在短暫的面試過程中多瞭解應聘者,那就要有明確的目的性。但是一般面試官不會只是簡單問你某某知識點,每個面試題目的背後都有著深意。下面我以list的面試題目來小小剖析一下。

當面試官問你,ArrayList,List和LinkedList的區別的時候,他並不是僅僅想問你他們的用法,而是想透過這道題目,來了解你對日常工作中經常用到的東西有沒有稍微深入的瞭解,深入到什麼程度,有沒有做到學以致用,把它們和資料結構緊密聯絡起來。通過這道小小的面試題,可以看出一個人對技術的專研大概程度。

一般,你這樣回答,就會得到很好的分數。

    1.List是介面類,ArrayList和LinkedList是List的實現類。

    2.ArrayList是動態陣列(順序表)的資料結構。順序表的儲存地址是連續的,所以在查詢比較快,但是在插入和刪除時,由於需要把其它的元素順序向後移動(或向前移動),所以比較熬時。

    3.LinkedList是連結串列的資料結構。連結串列的儲存地址是不連續的,每個儲存地址通過指標指向,在查詢時需要進行通過指標遍歷元素,所以在查詢時比較慢。由於連結串列插入時不需移動其它元素,所以在插入和刪除時比較快。

    僅僅是幾句話,就把它們之間的最大不同道出,體現了你對List其實有著更深層的關注,並且知道資料結構層面的特點,面試官會感覺你不是渾渾噩噩在工作的人,平時會比較注意積累和思考。其實還有更深層次含義,就是一旦在工作中遇到問題,他會相信你能憑藉這些見微知著的技術掌握很快找到原因並解決問題。