case class A(id: Int, name: String)val a = Seq(A(1, "a1"), A(2, "a2"), A(3, "a3"))val b = Seq(A(2, "a2"), A(3, "a3"), A(1, "a4"))println(s"a= ${a}")println(s"b= ${b}")val aMap = a.map(x => {x.id -> x.name}).toMapval bMap = b.map(x => {x.id -> x.name}).toMapprintln(s"aMap= ${aMap}")println(s"bMap= ${bMap}")// aMap里面和bMap里面, key如果相同, value就用bMap的// 注意如果一个都没有, 就报错val cMap = aMap.map(x => (x._1 -> bMap(x._1)))println(s"cMap= ${cMap}")// map转为list(A)val dList = cMap.map(x => A(x._1, x._2)).toSeqprintln(s"dList= ${dList}")
输出
a= List(A(1,a1), A(2,a2), A(3,a3))b= List(A(2,a2), A(3,a3), A(1,a4))aMap= Map(1 -> a1, 2 -> a2, 3 -> a3)bMap= Map(2 -> a2, 3 -> a3, 1 -> a4)cMap= Map(1 -> a4, 2 -> a2, 3 -> a3)dList= List(A(1,a4), A(2,a2), A(3,a3))
