集合的最大缺點是沒法進行類型斷定(這個缺點在JAVA1.5中已經解決),這樣就可能出現由於類型不一樣而出現類型錯誤。數組
解決的方法是添加類型的判斷。 數據結構
LinkedList接口(在代碼的使用過程當中和ArrayList沒有什麼區別)指針
ArrayList底層是object數組,因此ArrayList具備數組的查詢速度快的優勢以及增刪速度慢的缺點。接口
而在LinkedList的底層是一種雙向循環鏈表。在此鏈表上每個數據節點都由三部分組成:前指針(指向前面的節點的位置),數據,後指針(指向後面的節點的位置)。最後一個節點的後指針指向第一個節點的前指針,造成一個循環。隊列
雙向循環鏈表的查詢效率低可是增刪效率高。因此LinkedList具備查詢效率低但增刪效率高的特色。效率
ArrayList和LinkedList在用法上沒有區別,可是在功能上仍是有區別的。object
LinkedList常常用在增刪操做較多而查詢操做不多的狀況下:隊列和堆棧。List
隊列:先進先出的數據結構。循環
堆棧:後進先出的數據結構。方法
注意:使用堆棧的時候必定不能提供方法讓不是最後一個元素的元素得到出棧的機會。