6

があり、から取得した要素をval it:Iterator[(A,B)]使用して を作成したいと考えています。私が今それを行う方法は次のとおりです。SortedMap[A,B]Iterator

val map = SortedMap[A,B]() ++ it

動作は問題ありませんが、少し使いにくさを感じます。ドキュメントを確認しましたSortedMapが、よりエレガントなものは見つかりませんでした。次のようなものがありますか:

 it.toSortedMap 

また

SortedMap.from(it)

おそらく私が見逃した標準のScalaライブラリで?

編集:@Rexの答えから両方のアイデアを混ぜ合わせて、私はこれを思いつきました:

SortedMap(it.to:_*)

これは問題なく機能し、 の型シグネチャを指定する必要がなくなりますSortedMap。それでも面白いように見えるので、さらなる回答を歓迎します。

4

1 に答える 1

6

探している機能は他の組み合わせには存在しますが、必要な機能はありません。コレクションに必要なパラメータが 1 つだけの場合は、.to[NewColl]. たとえば、

import collection.immutable._

Iterator(1,2,3).to[SortedSet]

また、SortedMapコンパニオン オブジェクトには、次のように並べ替えられたマップを作成するために使用できる varargs apply があります。

SortedMap( List((1,"salmon"), (2,"herring")): _* )

( : _*which は内容を引数として使用することを意味することに注意してください)。残念ながら、これにはSeqではなくが必要Iteratorです。

したがって、あなたの最善の策は、あなたがすでに行っている方法です。

于 2013-02-23T16:04:49.517 に答える