如何在Scala中合并和区分列表?

时间:2011-11-22 17:43:48

标签: list scala collections

如何执行检查ID的操作并删除第一个列表的不同元素并添加第二个列表的不同元素?

这些字母是实体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

有没有人知道是否有任何功能执行此操作?

1 个答案:

答案 0 :(得分: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))