![](/img/trans.png)
[英]Scala - Collection comparison - Why is Set(1) == ListSet(1)?
[英]what is the advantage of ListSet or ListMap over Set and Map in Scala
在 Scala 中,ListSet 或 ListMap 相對於 Set 和 Map 的優勢是什么? 與 Set 和 Map 相比,ListSet 和 ListMap 是否是有序集合?
是的,它們兩個都在內部使用列表表示值。 這意味着它們將始終保持插入元素的順序。
在Java中,存在本質上非常相似的稱為LinkedHashMap
和LinkedHashSet
集合。
然而ListMap
和ListSet
招致諸如操作為O(n)的復雜性head
,插入或刪除條目。 僅last
和init
是恆定時間的操作。
例如:
scala> val x = Set(1,2,4,456,23,5,3)
scala> x.foreach(println)
5 1 456 2 3 23 4 3
scala> val y = ListSet(1,2,4,456,23,5,3)
scala> y.foreach(println)
3 5 23 456 4 2 1
請注意這兩個ListMap
和ListSet
存儲他們在反向插入順序的元素。
ListSet 和 ListMap 現在確保插入順序遍歷(在 2.11.x 中,以相反順序遍歷),並且它們的性能得到了改進(#5103)。
Scala> val y = ListSet(1,2,4,456,23,5,3)
Scala> y.foreach(println)
1 2 4 456 23 5 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.