在Scala中,如何检查Map是否包含来自另一个Map的所有条目?
发布时间:2020-12-16 09:02:17  所属栏目:安全  来源:网络整理 
            导读:总的新问题.说我有2张地图 val map1 = Map("ram"-"2gb","size"-"15","color"-"red","fruit"-"strawberry")val map2 = Map("ram"-"2gb","color"-"red") 我想知道map1是否完全包含map2(map1中的额外键/值是可以的),Scala有什么方法可以做到这一点? 我能想到的
                
                
                
            | 
 总的新问题.说我有2张地图 
  
  
  val map1 = Map("ram"->"2gb","size"->"15","color"->"red","fruit"->"strawberry")
val map2 = Map("ram"->"2gb","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
}这是有效的(我认为),但我想知道是否有更好的东西. 解决方法
 您可以将Map转换为Set,然后应用subsetOf方法. 
  
  
  val map1 = Map("ram"->"2gb","color"->"red")
map2.toSet subsetOf map1.toSet // res0: Boolean = true(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
