に等しくない長さの二つのリストに参加:は、私は2つのリストを持っているのScala
私がどのように見える新しいリストで、その結果、最初のリストの値として、第2のリストに鍵を交換したいval list_1 = List((1, 11), (2, 12), (3, 13), (4, 14))
val list_2 = List((1, 111), (2, 122), (3, 133), (4, 144), (1, 123), (2, 234))
:
List ((11, 111), (12, 122), (13, 133), (14, 144), (11, 123), (12, 234))
これは私の試みです:
object UniqueTest {
def main(args: Array[String]){
val l_1 = List((1, 11), (2, 12), (3, 13), (4, 14))
val l_2 = List((1, 111), (2,122), (3, 133), (4, 144), (1, 123), (2, 234))
val l_3 = l_2.map(x => (f(x._1, l_1), x._2))
print(l_3)
}
def f(i: Int, list: List[(Int, Int)]): Int = {
for(pair <- list){
if(i == pair._1){
return pair._2
}
}
return 0
}
}
これは、その結果:
((11, 111), (12, 122), (13, 133), (14, 144), (11, 123), (12, 234))
これを行うには、上記のプログラムが適していますか? Scalaには、この必要性を扱うための組み込み関数、またはこの操作を行う別の方法がありますか?
ありがとうございます。 .mapの後に "{}"と "()"の違いを教えてください。時々、私は.mapの後ろに丸い括弧を使うことができますが、このために "()"は私にコンパイルエラーを与えます。 – Frankie
I、すなわち ''場合タプルのリストに 'toMap'を適用する(A、B)=> ...' ' –
が危険であるパターンマッチングを使用することができるので、私は、その場合には' '{}'使用する:それはいくつかを失うことができるがデータセットに重複した最初の要素がある場合は、タプルを返します。 – Roman