ArrayList和LinkedList是常用的兩種存儲結構,那麼它們有哪些區別呢?這裡簡單給出一部分。 1、ArrayList和LinkedList可想從名字分析,它們一個是Array(動態數組)的數據結構,一個是Link(鏈表)的數據結構,此外,它們兩個都是對List介面的實現。 前者是數組隊列 ...
ArrayList和LinkedList是常用的兩種存儲結構,那麼它們有哪些區別呢?這裡簡單給出一部分。
1、ArrayList和LinkedList可想從名字分析,它們一個是Array(動態數組)的數據結構,一個是Link(鏈表)的數據結構,此外,它們兩個都是對List介面的實現。
前者是數組隊列,相當於動態數組;後者為雙向鏈表結構,也可當作堆棧、隊列、雙端隊列
2、當隨機訪問List時(get和set操作),ArrayList比LinkedList的效率更高,因為LinkedList是線性的數據存儲方式,所以需要移動指針從前往後依次查找。
3、當對數據進行增加和刪除的操作時(add和remove操作),LinkedList比ArrayList的效率更高,因為ArrayList是數組,所以在其中進行增刪操作時,會對操作點之後所有數據的下標索引造成影響,需要進行數據的移動。
4、從利用效率來看,ArrayList自由性較低,因為它需要手動的設置固定大小的容量,但是它的使用比較方便,只需要創建,然後添加數據,通過調用下標進行使用;而LinkedList自由性較高,能夠動態的隨數據量的變化而變化,但是它不便於使用。
5、ArrayList主要控制項開銷在於需要在lList列表預留一定空間;而LinkList主要控制項開銷在於需要存儲結點信息以及結點指針信息。
作者:耑新新,發佈於 博客園
轉載請註明出處,歡迎郵件交流:[email protected]