為什麼 Array 無法解決所有問題?我是如何理解 .NET Collection 設計的
前言 以前我學 Collection 的方式,就是背: List 是動態陣列 Dictionary 是 Hash Table Queue 是 FIFO Stack 是 LIFO 但一直有一個問題沒有答案。 既然 Array 已經可以存很多資料了,為什麼 .NET 還要設計這麼多 Collection? 如果世界只有 Array 假設 .NET 只有 Array。 Student[] students = new Student[100]; 其實很多事情都能做,例如: 存放資料 修改資料 使用索引快速取得資料 Array 還有一個非常大的優點。取出指定Array元素 students[50] 時間複雜度是 O(1) 但是Array當然會有缺點。 資料量變多 假設: Student[] students = new Student[100]; 突然第 101 個學生來了。 Array 並不能自己變大,只能: 建立新的 Array ↓ Copy 所有資料 ↓ 丟掉舊的 Array 這時我開始思考。 如果有一個容器可以自己長大,不就好了? 於是就有了List<T> 這也是我現在對 List 最簡單的理解。 ...