本文僅討論scala.collection.mutable.LinkedList
。其他的實現不是這個線程的主題。LinkedList的使用案例
我的問題是:這個類的用例是什麼?我發現它有可變結構和不可變結構兩種類型的問題,同時產生無結構的好處。我這樣說是因爲:
- 的API看起來對我來說,就好像它是一個不可改變的API(
filter
,map
,drop
,take
等全部返回新LinkedList
而不是做就地修改) - 所有不可變鏈表的好處是,至少我想,不存在,即結構之間最大的共享,這是因爲它們仍然可變(通過
var elem
和var next
。
所以basicly我們有一個線性的存取時間,線性AP掛起時間,線性空間等,沒有什麼可以在空間複雜性或代碼推理能力方面表現出來(除了O(1)預先計劃,但仍然是不可變列表的情況)。
我是否看不到這種結構的重要好處?我正在尋找客觀的度量和/或適用於這個類的用例。
看起來像一個不可變類的薄包裝。好處:編寫它的人能夠很快做到,而不用擔心引入錯誤? – bdares
@bdares是什麼讓你覺得呢?我快速查看了源代碼,似乎沒有這樣的事情。 –
嗯......就像任何可變類型一樣,它可以從幾個指針引用,一旦編輯完成,變化將從所有指針中看到。這與時間複雜性無關。 – Oren