【问题标题】:How to get Set of keys or values from Set of Map.Entry in scala?如何从 scala 中的 Map.Entry 集中获取键或值集?
【发布时间】:2019-04-21 19:50:24
【问题描述】:

我在 scala 中有一组 Map.Entry,例如 Set<Map.Entry<String, ConfigValue>>。现在我想在 scala 中设置键(字符串)或值(配置值)。请为这个问题提出一些简单的解决方案。 谢谢

【问题讨论】:

    标签: scala collections set


    【解决方案1】:

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

    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)
    

    【讨论】:

      【解决方案2】:

      如果你有

      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]
      

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

      【讨论】:

      • IIRC Map.Entry[K,V] 是一个单一的条目,所以它有点像 scalas tuple (K,V)
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2010-10-26
        • 2015-12-08
        • 2022-01-20
        • 1970-01-01
        • 2021-03-09
        • 2015-09-06
        • 1970-01-01
        • 2015-11-17
        • 1970-01-01
        相关资源
        最近更新 更多