检查集合中所有元组中的给定元素是否相等

时间:2019-06-20 10:57:14

标签: scala collections tuples equality

有一个元组集合,我想检查所有元组中的给定元素是否相等。

例如,考虑此数组中所有元组的第二个元素应返回false

val a = Array((4,2), (8,1), (9,4), (10,2), (13,1))

考虑此数组中所有元组的第二个元素时,应返回true

val b = Array((4,3), (8,3), (9,3), (10,3), (13,3))

2 个答案:

答案 0 :(得分:6)

如果我正确理解了您的问题,则可以这样做:

val a = Array((4,2), (8,1), (9,4), (10,2), (13,1))
val b = Array((4,3), (8,3), (9,3), (10,3), (13,3))

a.map(_._2).toSet.size == 1 // false
b.map(_._2).toSet.size == 1 // true

您可以here使用它

答案 1 :(得分:3)

尝试

a.forall { case (key, value) => value == a.head._2 } // res2: Boolean = false
b.forall { case (key, value) => value == b.head._2 } // res3: Boolean = true

请注意,如果数组为Array.empty[(Int, Int)]为空,则此解决方案将返回true

受到https://stackoverflow.com/a/41478838/5205022

的启发