Create SortedMap from Iterator in scala
collections, scala, sortedmap
Solution
The feature you are looking for does exist for other combinations, but not the one you want. If your collection requires just a single parameter, you can use `.to[NewColl]`. So, for example,
import collection.immutable._
Iterator(1,2,3).to[SortedSet]
Also, the `SortedMap` companion object has a varargs apply that can be used to create sorted maps like so:
SortedMap( List((1,"salmon"), (2,"herring")): _* )
(note the `: _*` which means use the contents as the arguments). Unfortunately this requires a `Seq`, not an `Iterator`.
So your best bet is the way you're doing it already.
Problem
I have an `val it:Iterator[(A,B)]` and I want to create a `SortedMap[A,B]` with the elements I get out of the `Iterator`. The way I do it now is: ``` val map = SortedMap[A,B]() ++ it ``` It works fine but feels a little bit awkward to use. I checked the `SortedMap` doc but couldn't find anything more elegant. Is there something like: ``` it.toSortedMap ``` or ``` SortedMap.from(it) ``` in the standard Scala library that maybe I've missed? Edit: mixing both ideas from @Rex's answer I came up with this: ``` SortedMap(it.to:_*) ``` Which works just fine and avoids having to specify the type signature of `SortedMap`. Still looks funny though, so further answers are welcome.