ArrayList從原理上就是數據結構中的數組,也就是內存中一片連續的空間,這意味着,當我get(index)的時候,我可以根據數組的(首地址+偏移量),直接計算出我想訪問的第index個元素在內存中的位置。寫過c的話,可以很容易的理解。
LinkedList可以簡單理解爲數據結構中的鏈表(說簡單理解,因爲其實是雙向循環鏈表),在內存中開闢的不是一段連續的空間,而是每個元素有一個[元素|下一元素地址]這樣的內存結構。當
get(index)時,只能從首元素開始,依次獲得下一個元素的地址。
用時間複雜度表示的話,ArrayList的get(n)是o(1),而LinkedList是o(n)
鏈接:https://www.zhihu.com/question/61920401/answer/192522263