如何在scala中从Set of Map.Entry中获取键或值的集合



我有一组类似scala中Set<Map.Entry<String, ConfigValue>>的Map.Entry。现在我想在scala中获取Set键(String(或值(ConfigValue(。请为这个问题提出一些简单的解决办法。感谢

您可以使用.mapSet[Map.Entry[String,ConfigValue]]转换为Set[String]和/或Set[ConfigValue]。但是请注意,您可能希望在之前转换为List,以避免折叠重复项。

所以如果你有

val map: Set[Map[K, V]] = ???
val keys = map.flatMap(_.keySet) will give you Set[K]
val values = map.flatMap(_.values) will give you Set[V]

在这两种情况下,重复项都将被删除。

您可以创建几个描述该计算的函数,如:

val getKeys: Set[JavaMap.Entry[String, ConfigValue]] => Set[String] = _.map(_.getKey)
val getValues: Set[JavaMap.Entry[String, ConfigValue]] => Set[ConfigValue] = _.map(_.getValue)

然后,当你需要提取其中一个时,你可以这样称呼它们:

val setOfKeyMap: Set[Map.Entry[String, ConfigValue]] = ???
...
val setOfKeys: Set[String] = getKeys(setOfKeyMap)
val setOfValues: Set[ConfigValue] = getValues(setOfKeyMap)

最新更新