2017-10-08 7 views

答えて

2

はい、どちらも内部的に値を表すListを使用します。 これは、要素が挿入された順序を常に保持することを意味します。

Javaでは、LinkedHashMapLinkedHashSetという非常に似たコレクションがあります。

およびListSetは、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

私は、ボンネットの下でリストに裏打ちされていることを意味しました。 –

+0

私は知っています。しかし、 'LinkedHashMap'はリストによってサポートされていません。これは、通常のマップと同じハッシュ構造でサポートされていますが、順序を追跡するために側面にリンクされたリストを保持します。 – Dima

関連する問題