簡體   English   中英

Scala-將迭代器轉換為地圖

[英]Scala - Transform a Iterator into a Map

如何從這樣的迭代器獲取

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())

您可以只使用地圖:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM