如何知道一个地图是否是Scala中另一个地图的子地图?

时间:2019-05-09 15:16:40

标签: scala dictionary

我有两个地图,我需要知道map1中的所有元素是否也在map2中。 我认为使用集合是个好主意,但这是行不通的。

map1 = Map("provider" -> pepe, "consumer" -> pipo)
map2 = Map("provider" -> pepe, "consumer" -> pipo, "id" -> 1)

map1.toSet subsetOf map2.toSet

1 个答案:

答案 0 :(得分:1)

您尚未指定pepepipo的类型,但是假设它们具有相同的类型,即String。当您使用map1.toSet时,它将创建一个推断类型为Set[(String, String)]的集合。您的其他映射也包含整数,因此类型为Set[(String, Any)]。因此您的代码将不会编译,因为类型不匹配。一种解决方法是只指定类型:

map1.toSet[(String, Any)].subsetOf(map2.toSet)