2011-11-22 44 views
3

如何执行一个操作来检查ID并删除第一个列表的不同元素并添加第二个列表的不同元素?如何在Scala中合并和比较列表?

这些字母是一个实体ID。这些数字是内存中的对象引用。

List 1: A:1, B:2, C:3, D:4, E:5 
List 2: B:6, C:7, E:8, F:9 

RemovedElements: A:1, D:4 
InvalidElements: B:6, C:7, E:8 
ResultList: B:2, C:3, E:5, F:9 

有谁知道是否有任何函数执行此操作?

回答

5
scala> val l1 = Seq(('A', 1), ('B', 2), ('C', 3), ('D', 4), ('E', 5)) 
l1: Seq[(Char, Int)] = List((A,1), (B,2), (C,3), (D,4), (E,5)) 

scala> val l2 = Seq(('B', 6), ('C', 7), ('E', 8), ('F', 9)) 
l2: Seq[(Char, Int)] = List((B,6), (C,7), (E,8), (F,9)) 

scala> l2 map { e => 
    | l1.find(_._1 == e._1).getOrElse(e) 
    | } 
res51: Seq[(Char, Int)] = List((B,2), (C,3), (E,5), (F,9)) 
+1

谢谢猴D.路飞(= – ricardogobbo

+0

欢迎。:) – missingfaktor