我有一个列表,其中包含格式为Local Date Time类型的元素数量,如下所示。
xSQLServerAlwaysOnAvailabilityGroupListener
我想检查List的每个元素是否来自下一个元素。例如,list的第一个值在list之前的第二个值之前。同样明智的我想检查列表中的所有元素。任何人都可以帮助我。
答案 0 :(得分:5)
这将测试List
格式良好的日期字符串是否按时间顺序排列。
import java.time.LocalDateTime
val dates: List[String] = List( "2017-06-25T00:00"
, "2017-06-25T00:05:13"
// etc.
, "2017-06-25T01:01:03"
)
dates.iterator
.map(LocalDateTime.parse)
.sliding(2)
.forall(x => x(0) isBefore x(1)) // returns true/false
包含.iterator
,以便可以懒惰地解析日期字符串,即如果其中一个第一个日期出现故障,那么列表中的后续日期根本不需要解析
答案 1 :(得分:-1)
这是一种方法,用于检查序列中日期的每个字符串是否早于下一个字符串(假设您有一个名为isBefore
的方法来比较其中两个字符串
@tailrec
def isMonotouslyIncreasing(seq: Seq[String]): Boolean = {
if(seq.size <= 1) true
else if(isBefore(seq(0), seq(1))) isMonotouslyIncreasing(seq.tail)
else false
}