ArrayList、Vector、LinkedList區別

來源:互聯網
上載者:User

關於這三者的區別,很久之前的時候已經懂了。但是,如果要在面試的時候,準確說出來還是有一定難度。特別是,最近幾回都是打醬油去裸考的……

好吧,現在就自己粗淺的理解,談談吧……

ArrayList和Vector應該可以歸到一類上去。因為,兩者底層都是藉著一個數組的,所以顯然易見,兩者通過索引號(也就是說,所謂的數組下標)可以輕易地檢索到索引號所指示的元素;但是若然需要增/刪、修改元素就會顯得十分吃力。而兩者的區別在於,Vector的方法很多都是同步方法,而ArrayList不是,所以,Vector就是所謂的安全執行緒,而Arraylist不是。而關於解決安全執行緒問題,個人認為使用同步的方式顯得過時了,可以參考使用LocalThread.!!!!!!!!!!

LinkedList底層不是數組,而是類似c語言中的雙向鏈表。因為java中沒有指標,所以,指標在這裡換成引用罷了。如同雙向鏈表,增刪修改元素是他的強項,尋找變成了雞肋。

好吧,就這麼多!隨便談談而已,歡迎拍磚!

 

附:一篇關於這個話題的論壇討論:

http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.