1
ScalaのListSetやListMapとSetとMapの利点は何ですか? ListSetとListMapはSetとMapに比べて順序付けされたコレクションですか?ScalaのListSetやListMapとSetとMapの利点は何ですか
ScalaのListSetやListMapとSetとMapの利点は何ですか? ListSetとListMapはSetとMapに比べて順序付けされたコレクションですか?ScalaのListSetやListMapとSetとMapの利点は何ですか
はい、どちらも内部的に値を表すListを使用します。 これは、要素が挿入された順序を常に保持することを意味します。
Javaでは、LinkedHashMap
とLinkedHashSet
という非常に似たコレクションがあります。
およびListSet
は、head
などの操作でO(n)の複雑さがあり、エントリを挿入または削除します。単に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
ストア逆挿入のためにそれらの要素の両方こと。
これらはjavaと似ていません。 Javaの 'LinkedHashMap'と' LinkedHashSet'は一定の時間検索を持っています。 'LinkMap'と' LinkSet'ルックアップは線形です。 – Dima
私は、ボンネットの下でリストに裏打ちされていることを意味しました。 –
私は知っています。しかし、 'LinkedHashMap'はリストによってサポートされていません。これは、通常のマップと同じハッシュ構造でサポートされていますが、順序を追跡するために側面にリンクされたリストを保持します。 – Dima