Scala - 将迭代器转换为地图

时间:2017-02-17 11:57:51

标签: scala

如何从像这样的迭代器中获取

val it = Iterator("one","two","three","four","five")

这样的地图

Map(four -> 4, three -> 5, two -> 3, five -> 4, one -> 3)

 var m = Map[String, Int]()
      while (it.hasNext) {
        val cell = it.next()
        m += (cell -> cell.length())
      }

这是使用var的解决方案,但我想只使用Immutable和val变量。

如果我使用for yield语句,返回的对象将是Iterator[Map],我不希望这样:

val m = for(i<- it if it.hasNext) yield Map(i->i.length())

1 个答案:

答案 0 :(得分:7)

你可以使用map:

val m = it.map(c => c -> c.length).toMap
相关问题