为什么Scala中的列表在内部是LinkedList?
我是Scala的新手,知道Scala中的列表是一个隐藏在引擎盖下的单链接列表 以下是相关文件: 一个不可变链表类,表示A类元素的有序集合 这个类附带了两个实现案例类scala.Nil和scala::它们实现了抽象成员isEmpty、head和tail 此类对于后进先出(LIFO)和类似堆栈的访问模式是最佳的。如果您需要另一个访问模式,例如,随机访问或FIFO,请考虑使用比列表更适合的集合。 为什么列表在内部是一个链表为什么Scala中的列表在内部是LinkedList?,scala,list,linked-list,implementation,Scala,List,Linked List,Implementation,我是Scala的新手,知道Scala中的列表是一个隐藏在引擎盖下的单链接列表 以下是相关文件: 一个不可变链表类,表示A类元素的有序集合 这个类附带了两个实现案例类scala.Nil和scala::它们实现了抽象成员isEmpty、head和tail 此类对于后进先出(LIFO)和类似堆栈的访问模式是最佳的。如果您需要另一个访问模式,例如,随机访问或FIFO,请考虑使用比列表更适合的集合。 为什么列表在内部是一个链表 在需要随机访问的情况下,它不是效率较低吗?它在某些情况下效率较高,而在某些情况
在需要随机访问的情况下,它不是效率较低吗?它在某些情况下效率较高,而在某些情况下效率较低。你引用的最后一段甚至告诉你是哪一段。然而,函数式语言通常有链接列表工作良好的编程模式。实际上它根本不是一个
LinkedList
,而是一个Cons
列表。当您查看性能特征时,Cons
列表与LinkedList
非常相似。除了列表
之外,还有多种集合
的实现方式,可以更好地满足您的需求。@SarveshKumarSingh的可能重复:“实际上它根本不是苹果,它是水果。碰巧水果与苹果非常相似。”。根据定义,每个cons列表都是单链接列表(尽管并非所有链接列表都是cons列表,例如双链接列表)。