我遇到了问题,而且我真的不知道如何以适当的Scala方式做到这一点。
我有一个对象列表,有一个约会。我想做这样的事情:
我想在列表中的2个后继者之间使用可接受的时间值(例如2小时)进行选择。目的是保持用户趋势与点相比(如果他在这里显示2次,或1或15!)。
我想象的算法:
如何使用一些过滤器或收集?哦,如果算法对你来说听起来不太好,我会受到批评!
编辑:我不是要求解决方案,而只是要查找正确的函数!
答案 0 :(得分:6)
假设我有一个整数列表,我想逐步完成它们,只保留比前一个大1的值。我会使用foldLeft来逐步完成它们,建立一个只有可接受项目的列表:
val nums = List(1,2,4,5,7)
nums.foldLeft(List[Int]()){
case (List(), b) => List(b)
case (list, b) if b - list.head > 1 => list :+ b
case (list, b) => list
}