gpt4 book ai didi

scala - 将 Map 中的 Map(key, Set[value]) 附加到 Scala 2.11 中的现有 Key

转载 作者:行者123 更新时间:2023-12-01 17:43:51 25 4
gpt4 key购买 nike

我正在尝试将新值附加到现有键的 Set(Values) 中,但它正在替换现有值。

这是我的输入

val roads = Array(Array(0,1),Array(0,2),Array(1,2))

预期输出:

Map(0 -> Set(1,2),1 -> Set(2))

我的代码:

  val roads = Array(Array(0,1),Array(0,2),Array(1,2))
var adjMatrix:Map[Int,Set[Int]] = Map()

for(i <- 0 until roads.size; j <- 1 until roads(i).size){
adjMatrix += (roads(i)(0) -> Set(roads(i)(j)))
}

当我这样做

  adjMatrix.foreach(println)

我得到以下结果,因为有两个名称为 0 的键,它替换了第 0 个索引处的 (0,1) 元素

(1,Set(2))
(0,Set(2))

最佳答案

尝试

roads
.groupBy(a => a(0))
.map { case (key, value) => key -> (value.flatten.toSet - key) }

输出

Map(1 -> Set(2), 0 -> Set(1, 2))

关于scala - 将 Map 中的 Map(key, Set[value]) 附加到 Scala 2.11 中的现有 Key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56904533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com