在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |