这篇文章只讨论scala.collection.mutable.LinkedList
。其他实现不是这个线程的主题。
我的问题是:这个类的用例是什么?我发现它具有可变和不可变结构类型的问题,同时没有产生任何好处。我这么说是因为:
- API 在我看来就像是一个不可变的 API(
filter
,map
,drop
等都take
返回一个新LinkedList
的而不是进行就地修改) - 不可变链表的所有好处至少我猜是不存在的,即结构之间的最大共享,因为它们仍然是可变的(通过
var elem
和var next
.
所以基本上我们有一个线性访问时间、线性附加时间、线性空间等,并且在空间复杂性或推理代码的能力方面没有任何表现(除了 O(1) 前置,但它仍然是不可变列表的情况) .
我看不到这种结构的重要好处吗?我正在寻找适用于此类的客观度量和/或用例。