Преобразование параллельной коллекции scala в обычную коллекцию

Я пытаюсь обратно преобразовать параллельную коллекцию в обычную карту. Согласно API, если я вызываю toMap для любой соответствующим образом определенной параллельной коллекции, она должна возвращать стандартную карту, но возвращает ParMap поверх сглаженной коллекции итерируемых объектов.

У меня есть

val task: Stream[Future[Iterable[Tuple2[String, String]]]]

И откуда я получаю:

val res: ParSeq[Iterable[Tuple2[String, String]]] = tasks.par.map(f => f.apply())

Наконец:

val finalresult = res.flatten.toMap

К сожалению, тип finalresultParMap[String, String].

С другой стороны, если я назову это как:

tasks.par.map(f => f.apply()).reduce(_++_).toMap

то возвращаемый тип — Map[String, String].

Может кто-нибудь сказать мне, почему это так? И (из любопытства ), как я могу принудительно преобразовать ParMapв Map, когда scala мне не позволяет?

26
задан om-nom-nom 19 August 2012 в 05:33
поделиться