"2gb", "size"->"15", "color"->"red", "fruit"->"strawberry") -6ren">
gpt4 book ai didi

scala - 在 Scala 中,如何检查一个 Map 是否包含来自另一个 Map 的所有条目?

转载 作者:行者123 更新时间:2023-12-04 00:09:45 24 4
gpt4 key购买 nike

总新手问题。说我有 2 张 map

val map1 = Map("ram"->"2gb", "size"->"15", "color"->"red", "fruit"->"strawberry")
val map2 = Map("ram"->"2gb", "size"->"15", "color"->"red")

我想知道 map1 完全包含 map2(map1 中的额外键/值是可以的),有什么好的 Scala 方法可以做到这一点?

我能想到的最好的办法是创建我自己的函数:
def doesMapContainMap(map1: Map[_,_], map2: Map[_,_]): Boolean = {
var matchCount: Int = 0
map2 foreach {
entry => {
if (map1.exists(x => x._1 == entry._1 && x._2 == entry._2)) {
matchCount += 1;
}
}
}
// true if the number of matches is equal to the number of elements in map2
map2.size == matchCount
}

这有效(我认为),但我想知道是否有更好的方法。

最佳答案

您可以转换 MapSet然后应用 subsetOf方法。

val map1 = Map("ram"->"2gb", "size"->"15", "color"->"red", "fruit"->"strawberry")
val map2 = Map("ram"->"2gb", "size"->"15", "color"->"red")

map2.toSet subsetOf map1.toSet // res0: Boolean = true

关于scala - 在 Scala 中,如何检查一个 Map 是否包含来自另一个 Map 的所有条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189198/

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