JAVA學習筆記 — Vector, ArrayList, Array

來源:互聯網
上載者:User

前一陣子第一次用JAVA寫了個項目,這距離我認真學習JAVA還不到2個月。很多時候,我不得不邊學JAVA邊寫做項目。但正因為如此,我深刻體會到了JAVA的簡單和方便。這其中Eclipse也起了很大的作用,當我在Eclipse上劈裡啪啦的敲代碼的時候,我才真切認識到在LINUX下敲VI是多麼的土鱉。總而言之,我現在已經深深地”迷戀“上了JAVA,除了一點:不能”碰“記憶體這件事真的讓我有時候很不爽。

說跑題了。

 

JAVA新手在使用JAVA的時候大概都會遇到這個問題:

JAVA中的Array, ArrayList, Vector, List, LinkedList有什麼樣的區別?尤其是Vector, ArrayList, Array之間的區別?因為這三個概念從本質上來說都是一樣的,都是數組的資料結構。

關於這個問題,這裡有篇文章:

http://www.javaworld.com/javaworld/javaqa/2001-06/03-qa-0622-vector.html

已經解釋得很清楚了,我簡單概括一下。


Vector這個類是thread safe的。就是說,多線程同時調用同一個Vector的方法不會造成資料的混亂。而ArrayList不是thread safe。所以,如果是多線程的程式,多使用Vector,這樣不需要自己維護concurrency。


資料的增長模式不一樣。無論是Vector還是ArrayList,內部都是用一個Array來實現的,這就意味著,一旦資料越來越多超過了原來Array的容量的時候,Vector和ArrayList都需要擴充Array來滿足新的資料。Vector每次擴充的時候都增長一倍,就是說新的Array的size是舊的Array的size的2倍。而ArrayList每次擴充,它的Array的size只增加50%.


最後,如果程式對於效能要求很高的話,Vector和ArrayList最好哪個都別用,而使用原始的Array。


 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.