У меня есть два списка: List(1,1,1) , List(1,0,1)
Сравнение элементов в двух списках
Я хочу, чтобы получить следующее:
Подсчет каждого элемента, который содержит 1 в первом списке и 0 в соответствующей список в том же положении и наоборот. В приведенном выше примере это будет 1, 0, так как первый список содержит 1 в среднем положении, а второй список содержит 0 в том же положении (средний).
Счет каждого элемента, в котором 1 находится в первом списке, а 1 - во втором списке. В приведенном выше примере это два, так как в каждом соответствующем списке есть два 1. Я могу получить это, используя метод intersect класса List.
Я просто ищу ответ на пункт 1 выше. Я мог бы использовать итеративный подход для подсчета элементов, но есть ли более функциональный метод? Вот весь код:
class Similarity {
def getSimilarity(number1: List[Int], number2: List[Int]) = {
val num: List[Int] = number1.intersect(number2)
println("P is " + num.length)
}
}
object HelloWorld {
def main(args: Array[String]) {
val s = new Similarity
s.getSimilarity(List(1, 1, 1), List(1, 0, 1))
}
}
Не могли бы вы просто сказать «x => x._1 == 1 && x._2 == 0'? –
На самом деле вы можете заменить 'filter (predicate) .size' с помощью' count (предикат) ' –