我从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代码。但是,我无法在功能上提出解决这个问题的想法。
有人可以帮我解决这个问题吗?
答案 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)