Как получить набор ключей или значений из набора Map.Entry в Scala? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть набор Map.Entry, как Set<Map.Entry<String, ConfigValue>> в Scala.Теперь я хочу, чтобы установить или ключи (String) или значения (ConfigValue) в Scala.Пожалуйста, предложите простое решение этой проблемы.Спасибо

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Так что, если у вас есть

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]

В обоих случаях дубликаты будут удалены.

0 голосов
/ 19 ноября 2018

Вы можете создать пару функций, которые описывают эти вычисления, например:

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)
0 голосов
/ 19 ноября 2018

вы можете использовать .map для преобразования Set[Map.Entry[String,ConfigValue]] в Set[String] и / или Set[ConfigValue].однако учтите, что вы можете преобразовать в List прежде, чтобы избежать свертывания дубликатов.

...