簡體   English   中英

從Scala中的數組創建HashMap

[英]Create a HashMap from an Array in Scala

我想用Array[(K,V)]元素填充HashMap[K,ArrayBuffer[V]] Array[(K,V)]

我嘗試使用多圖,但它似乎不支持ArrayBuffer而僅支持Set

我最終得到了這段代碼:

val hashmap = list.foldLeft(HashMap.empty[K, ArrayBuffer[V]]){ (acc, pair) =>
  acc.getOrElseUpdate(pair._1, ArrayBuffer.empty[V]) += pair._2
  acc
}

有沒有更優雅/有效的方法呢?

val source = Array(1 -> "one", 1 -> "ein", 2 -> "two", 3 -> "three")
val result = source.groupBy(_._1).mapValues(_.map(_._2))
println(result.mapValues(_.toList))
  • source是示例數據,您可以擁有。 1有2個值: oneein
  • 使用groupBymapValues構建結果
  • println調用.toList以便在List上調用漂亮的toString ,因為Array上的toString不打印元素。

暫無
暫無

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

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