如何从Scala中的Map.Entry集获取键或值集?

时间:2018-11-19 12:40:27

标签: scala collections set

我在scala中有一组{。{1}}之类的Map.Entry。现在,我想在scala中获取Set keys(字符串)或values(ConfigValue)。请为该问题提出一些简单的解决方案。 谢谢

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果有的话

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]

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

答案 2 :(得分:0)

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

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)