Scala-使用过滤器查看一个列表中的值是否与另一列表中相同索引中的值匹配

时间:2019-04-19 07:40:46

标签: scala

给出2个列表并使用Filter方法,我需要编写一个函数来获取这2个列表,对它们进行过滤,然后比较一个列表中一个索引中的值是否与列表中相同索引中的值匹配其他列表

示例VVV

scala> val list1 = List(1,2,3,10)
scala> val list2 = List(3,2,1,10)
scala> val mn = matchedNumbers(list1, list2)
List(2,10)

该方法称为“ matchedNumbers”

任何帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:5)

解决方案与@talex几乎相同,仅使用collect:

def matchedNumbers(list1: List[Int], list2: List[Int]) = 
  list1.zip(list2).collect{case (x, y) if x == y => x}

答案 1 :(得分:3)

您可以使用此

def matchedNumbers(list1: List[Int], list2: List[Int]) = {
  list1.zip(list2).filter { case (x, y) => x == y }.map(_._1)
}