2
我遇到了一个问题,我真的不知道如何以适当的Scala方式来做到这一点。Scala List按日期差异过滤
我有一个对象列表,持有一个日期。我想要做这样的事情:
我要做出选择使用可接受的时间值,如2小时,在列表2个接班人之间。目的是让用户的趋势与某个点相比(如果他在这里显示2次,或者1或15!)。
算法我想象:
- 让我们保持2分A和B.我们计算出2点之间的时间差,然后评估它是否可以接受与否(> 2小时,可以接受)。
- 如果不可接受,我们拒绝B,然后新的B是下一个列表元素。
- 如果可以接受,则B变成A,新的B是下一个列表元素。
如何做到这一点,用一些过滤器或收集?哦,如果算法对你来说听起来不太好,我可以批评!
编辑:我没有要求解决方案,但只是正确的功能来查找!
好的和明确的解释。 'b :: list'在中间情况下+一个'.reverse'对结果会更有效 –
@TheArchetypalPaul你能解释为什么这样更有效吗? – mattinbits
略有修改版本:'nums.foldLeft(List [Int]()){case(Nil,b)=> List(b); case(ls @(x :: xs),b)=> if(b-x> 1)b :: ls else ls} .reverse' – Eastsun