@SerialVersionUID (3L)
用法 一
sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq[A] with LinearSeqOps[A, List, List[A]] with StrictOptimizedLinearSeqOps[A, List, List[A]] with StrictOptimizedSeqOps[A, List, List[A]] with IterableFactoryDefaults[A, List] with DefaultSerializable
表示类型A
元素的有序集合的不可变链表类.
这个类带有两个实现案例类scala.Nil
和scala.::
,它们实现了抽象成员isEmpty
、head
和tail
。
此类最适合 last-in-first-out (LIFO)、stack-like 访问模式。如果您需要其他访问模式,例如随机访问或 FIFO,请考虑使用比 List
更适合此的集合。
性能
时间: List
已O(1)
前置和头部/尾部访问。大多数其他操作是O(n)
关于列表中元素的数量。这包括基于索引的元素查找,length
,append
和reverse
.
空间: List
实现结构共享的尾列表。这意味着许多操作或者是零成本,或者是 constant-memory 成本。
val mainList = List(3, 2, 1)
val with4 = 4 :: mainList // re-uses mainList, costs one :: instance
val with42 = 42 :: mainList // also re-uses mainList, cost one :: instance
val shorter = mainList.tail // costs nothing as it uses the same 2::1::Nil instances as mainList
也可以看看:
"Scala's Collection Library overview" section on
Lists
for more information.注意:
函数列表具有持久化和结构共享的特点,如果使用得当,在某些场景下可以提供可观的性能和空间消耗优势。但是,请注意,对同一函数列表具有多个引用的对象(即依赖结构共享的对象)将使用多个列表进行序列化和反序列化,每个列表对应一个引用。 IE。序列化/反序列化后结构共享丢失。
例子:
// Make a list via the companion object factory val days = List("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") // Make a list element-by-element val when = "AM" :: "PM" :: Nil // Pattern match days match { case firstDay :: otherDays => println("The first day of the week is: " + firstDay) case Nil => println("There don't seem to be any week days.") }
伴生:
- object
源码:
- List.scala
@SerialVersionUID (3L)
用法 二
object List extends StrictOptimizedSeqFactory[List]
此对象提供一组操作来创建 List
值.
伴生:
- class
源码:
- List.scala
相关用法
- Scala immutable.LazyList用法及代码示例
- Scala immutable.TreeMap用法及代码示例
- Scala immutable.SortedMap用法及代码示例
- Scala immutable.NumericRange用法及代码示例
- Scala immutable.Range用法及代码示例
- Scala immutable TreeSet toSeq()用法及代码示例
- Scala immutable TreeSet sum()用法及代码示例
- Scala immutable TreeSet init()用法及代码示例
- Scala immutable TreeSet mkString()用法及代码示例
- Scala immutable TreeSet diff()用法及代码示例
- Scala immutable TreeSet toString()用法及代码示例
- Scala immutable TreeSet find()用法及代码示例
- Scala immutable TreeSet splitAt()用法及代码示例
- Scala immutable TreeSet min()用法及代码示例
- Scala immutable TreeSet toBuffer()用法及代码示例
- Scala immutable TreeSet dropWhile()用法及代码示例
- Scala immutable TreeSet count()用法及代码示例
- Scala immutable TreeSet exists()用法及代码示例
- Scala immutable TreeSet copyToArray()用法及代码示例
- Scala immutable TreeSet toArray()用法及代码示例
- Scala immutable TreeSet head()用法及代码示例
- Scala immutable TreeSet map()用法及代码示例
- Scala immutable TreeSet forall()用法及代码示例
- Scala immutable TreeSet clone()用法及代码示例
- Scala immutable TreeSet foreach()用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 immutable.List。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。