【问题标题】:Check if a Set of tuples contains an item with the same elements as a given Set of 2 elements检查一组元组是否包含与给定 2 个元素的集合具有相同元素的项
【发布时间】:2016-02-24 16:33:03
【问题描述】:

鉴于这两个集合:

val countries = Set(("Paris","France"),("Berlin","Germany"),("Madrid","Spain"))
val values = Set("Paris","France")

如何检查countries 是否包含与values 具有相同元素的元组?

【问题讨论】:

  • 我不明白这个问题。 countrysTuple2[String, String]Set,而valuesSet[String],所以countrys 不能包含values。您真正想知道的究竟是什么?
  • 另外,你为什么用apache-spark?标记这个问题
  • 进一步澄清 - 您是否使用 Set - 即无序集合 - 有意?换句话说,如果 countries 包含 ("France", "Paris") 而不是 ("Paris", "France"),您想要一个肯定的结果吗?
  • @will。集合与 Spark 无关,它们是标准的 Scala。所以这个问题与 Spark 无关。

标签: scala set tuples


【解决方案1】:

这应该可行:

countries.map(c => Set(c._1,c._2)).contains(values)

【讨论】:

    【解决方案2】:

    因为集合是无序的,不要使用

    val values = Set("Paris","France")
    

    但使用元组代替

    val value = ("Paris","France")
    

    然后你可以这样做

    countries.contains(value)
    

    【讨论】:

    • 不是因为Set没有顺序,而是OP的代码问题不会编译:scala> countries.contains(values) <console>:14: error: type mismatch; found : scala.collection.immutable.Set[String] required: (String, String) countries.contains(values) ^
    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 2019-08-24
    • 2014-01-03
    • 2016-02-02
    • 2021-01-30
    • 1970-01-01
    • 2022-01-02
    • 2016-10-13
    相关资源
    最近更新 更多