给出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”
任何帮助将不胜感激。谢谢
答案 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)
}