Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Scala中的列表在内部是LinkedList?_Scala_List_Linked List_Implementation - Fatal编程技术网

为什么Scala中的列表在内部是LinkedList?

为什么Scala中的列表在内部是LinkedList?,scala,list,linked-list,implementation,Scala,List,Linked List,Implementation,我是Scala的新手,知道Scala中的列表是一个隐藏在引擎盖下的单链接列表 以下是相关文件: 一个不可变链表类,表示A类元素的有序集合 这个类附带了两个实现案例类scala.Nil和scala::它们实现了抽象成员isEmpty、head和tail 此类对于后进先出(LIFO)和类似堆栈的访问模式是最佳的。如果您需要另一个访问模式,例如,随机访问或FIFO,请考虑使用比列表更适合的集合。 为什么列表在内部是一个链表 在需要随机访问的情况下,它不是效率较低吗?它在某些情况下效率较高,而在某些情况

我是Scala的新手,知道Scala中的列表是一个隐藏在引擎盖下的单链接列表

以下是相关文件:

一个不可变链表类,表示A类元素的有序集合

这个类附带了两个实现案例类scala.Nil和scala::它们实现了抽象成员isEmpty、head和tail

此类对于后进先出(LIFO)和类似堆栈的访问模式是最佳的。如果您需要另一个访问模式,例如,随机访问或FIFO,请考虑使用比列表更适合的集合。

为什么列表在内部是一个链表


在需要随机访问的情况下,它不是效率较低吗?

它在某些情况下效率较高,而在某些情况下效率较低。你引用的最后一段甚至告诉你是哪一段。然而,函数式语言通常有链接列表工作良好的编程模式。实际上它根本不是一个
LinkedList
,而是一个
Cons
列表。当您查看性能特征时,
Cons
列表与
LinkedList
非常相似。除了
列表
之外,还有多种
集合
的实现方式,可以更好地满足您的需求。@SarveshKumarSingh的可能重复:“实际上它根本不是苹果,它是水果。碰巧水果与苹果非常相似。”。根据定义,每个cons列表都是单链接列表(尽管并非所有链接列表都是cons列表,例如双链接列表)。