僅當arraylist的元素存儲的是值類型,并且尺寸非常大(每條記錄的尺寸都可能以兆為單位)時。有必要考慮linkedlist。
而這對java來說并不存在。因為java默認存儲的對象都是引用。此時,哪怕全盤復制移動arraylist的開銷也沒多少,比linked list帶來的動態分配開銷小。
只有C++才會大量使用值類型。而只有大型的值類型才能使得linkedlist有那么一丟丟優勢。這種代碼現實中非常少見。
當然,C++其實也允許很多來自C/Java程序員把引用存儲在數組內的寫法,這種情況下,C++的很多特性優勢發揮不出來,而且linked list也不會獲得性能優勢。直接用arraylist就好。