[英]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個值: one
和ein
。 groupBy
和mapValues
構建結果 println
調用.toList
以便在List上調用漂亮的toString
,因為Array
上的toString
不打印元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.