Scala-将迭代器转换为映射

Scala-将迭代器转换为映射,scala,Scala,如何从这样的迭代器中获取 val it=Iterator(“一”、“二”、“三”、“四”、“五”) 像地图一样的 地图(四->四,三->五,二->三,五->四,一->三) 这是一个使用var的解决方案,但我只想使用不可变和val变量 如果我将用于yield语句,则返回的对象将是迭代器[Map],我不希望: val m = for(i<- it if it.hasNext) yield Map(i->i.length()) val m=for(ii.length()) 您可以使用地图

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

val it=Iterator(“一”、“二”、“三”、“四”、“五”)

像地图一样的

地图(四->四,三->五,二->三,五->四,一->三)

这是一个使用
var
的解决方案,但我只想使用不可变和
val
变量

如果我将
用于yield
语句,则返回的对象将是
迭代器[Map]
,我不希望:

val m = for(i<- it if it.hasNext) yield Map(i->i.length())
val m=for(ii.length())
您可以使用地图:

val m = it.map(c => c -> c.length).toMap
您只需使用地图:

val m = it.map(c => c -> c.length).toMap

您的
for
版本非常奇怪。如果,则不需要
——for
已经处理了这个问题,并且
为每个条目生成了一个单独的
映射,而不仅仅是元组<代码>{for(i.length)}.toMap
就可以了。你的
for
版本很奇怪。如果
,则不需要
——for
已经处理了这个问题,并且
为每个条目生成了一个单独的
映射,而不仅仅是元组<代码>{for(i.length)}.toMap
就可以了。