簡體   English   中英

在 Scala 中,ListSet 或 ListMap 相對於 Set 和 Map 的優勢是什么

[英]what is the advantage of ListSet or ListMap over Set and Map in Scala

在 Scala 中,ListSet 或 ListMap 相對於 Set 和 Map 的優勢是什么? 與 Set 和 Map 相比,ListSet 和 ListMap 是否是有序集合?

是的,它們兩個都在內部使用列表表示值。 這意味着它們將始終保持插入元素的順序。

在Java中,存在本質上非常相似的稱為LinkedHashMapLinkedHashSet集合。

然而ListMapListSet招致諸如操作為O(n)的復雜性head ,插入或刪除條目。 lastinit是恆定時間的操作。

例如:

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 

請注意這兩個ListMapListSet存儲他們在反向插入順序的元素。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM