avatar

Array 和 List 的分別

For my own quick reference only.
這個 post 的內容全部引用自這篇文章,感謝:菜鳥工程師的紀錄: Array與List

Array使用連續記憶體空間,List【不需要】使用連續記憶體空間。

連續記憶體空間是什麼意思?比方說你要蓋五棟房子,連續記憶體空間代表你要找一個塊夠大的地,可以讓你五棟房子都蓋在一起,在都市應該很難找,到鄉下比較有機會,不使用連續記憶體空間代表代表你只要找到五塊空地,就可以蓋五棟房子,並不要求一定要蓋在一起。

使用連續記憶體空間始有風險的,因為記憶體一直不斷的在存放資料刪除資料,記憶體空間看起來還不少,但很有可能都是零碎的記憶體空間,有時候在宣告比較大的Array的時候會失敗,因為連續記憶體空間不夠。

Array輪循速度比較快,List輪循速度比較慢。

以上面蓋房子的例子來說,Array要走過所有房子很快,因為都蓋在一起,但是List就不一樣了,因為房子不一定蓋在一起,所以要走過所有房子就要花比較多的時間。

Array無法新增或刪除其中的元素,List可以。

Array因為房子都蓋在一起,一開始就設計好了,沒辦法中間插進去一棟或者是敲掉其中一棟,再把其他棟移過來,但是List因為房子都沒有蓋在一起,所以要增加或減少房子都沒問題。

Array可以反轉,可以比較其中的元素是否相同。


如果您喜歡我的文章,歡迎幫我在下面按5下讚!感謝您的鼓勵和支持!

文章作者: ouoholly
文章鏈接: https://ouoholly.github.io/post/diff-of-array-and-list/
版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。歡迎「部份引用」與介紹(如要全文轉貼請先留言詢問),轉載引用請註明來源 ouoholly 的倉庫,謝謝!

評論