小编Tho*_*mas的帖子

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

总的新问题.说我有2张地图

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

我想知道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
}
Run Code Online (Sandbox Code Playgroud)

这是有效的(我认为),但我想知道是否有更好的东西.

scala map scala-collections

12
推荐指数
2
解决办法
2826
查看次数

标签 统计

map ×1

scala ×1

scala-collections ×1