2011-11-22 33 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