@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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。