匹配Scala中的两个日历列表

时间:2016-06-06 15:35:36

标签: list scala functional-programming

我从Scala开始,目前我正在尝试编写一个算法,该算法接收两个带有日历时间的列表,并且必须选择匹配的时间。

例如,第一个列表具有以下值(为了简单起见,我只将时间放在一起):

[12:00,12:50,13:40,14:30,15:20,16:10,17:00,17:50,18:40]

第二个列表具有以下值:

[13:20,13:40,14:30,15:20,16:10,16:30]

我想获得一个包含以下值的列表:

[13:40,14:30,15:20,16:10]

此值表示与第一个和第二个列表匹配的每50分钟间隔。

我可以使用迭代方法来解决这个问题。我只需要浏览两个列表,看看这些值是否符合我的需求,但它不是很有用,我试着编写好的Scala代码。但是,我无法在功能上提出解决这个问题的想法。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

使用intersect上的List功能。它计算列表的多集交集。两个列表中存在的所有元素都将添加到结果列表中。

val list1 = List("12:00", "12:50", "13:40", "14:30", "15:20",
                 "16:10", "17:00", "17:50", "18:40")

val list2 = List("13:20", "13:40", "14:30", "15:20", "16:10", "16:30")

val matched = list1.intersect(list2) // Gives List(13:40, 14:30, 15:20, 16:10)