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
就可以了。