私は2つのリストを持っています:List(1,1,1) , List(1,0,1)
私は以下を取得したい:
最初のリストに 1 を含み、対応するリストの同じ位置に 0 を含むすべての要素の数、およびその逆の数。上記の例では、最初のリストの中間位置に 1 が含まれ、2 番目のリストの同じ位置 (中間) に 0 が含まれているため、これは 1 , 0 になります。
1 が最初のリストにあり、1 が 2 番目のリストにもあるすべての要素の数。上記の例では、対応する各リストに 2 つの 1 があるため、これは 2 です。クラス List の intersect メソッドを使用してこれを取得できます。
上記のポイント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))
}
}