2017-10-08 65 views

回答

2

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

在Java中有一些名爲LinkedHashMapLinkedHashSet的集合,它們的性質非常相似。

但是ListMapListSet在諸如head的操作上產生O(n)複雜度,插入或移除條目。僅僅是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存儲它們在反向插入順序的元件。

+0

它們與java不相似。 Java'LinkedHashMap'和'LinkedHashSet'具有恆定的時間查找。 'LinkMap'和'LinkSet'查詢是線性的。 – Dima

+0

我的意思是關於被引擎蓋下的List所支持。 –

+0

我知道。但'LinkedHashMap'不支持列表。它與常規映射具有相同的散列結構,但保留一側的鏈表以跟蹤排序。 – Dima

相關問題