基于时间戳值的 Scala Map 排序

Scala Map ordering based on Timestamp value

我正在尝试按时间戳降序排列我的值元组。我的密码是

    import java.lang.{Double => JDouble}
    def comparator(first: (Timestamp, JDouble), second: (Timestamp, JDouble)): Boolean = first._1.compareTo(second._1) < 1
    
    val timeBoundContractRatesList: Map[String, List[(Timestamp, JDouble)]] = Map(
    "ITABUS" -> List((Timestamp.valueOf("2021-08-30 23:59:59"), 0.8),
      (Timestamp.valueOf("2021-09-30 23:59:59"), 0.9),
      (Timestamp.valueOf("2021-07-30 23:59:59"), 0.7),
    )
  )
    .map { case (key, valueTuple) => key -> valueTuple.sortWith(comparator) }.toMap

我的预期输出 timeBoundContractRatesList 的值应该按时间戳的降序排列,

Map(
    "ITABUS" -> List((Timestamp.valueOf("2021-07-30 23:59:59"), 0.7),
      (Timestamp.valueOf("2021-08-30 23:59:59"), 0.8),
      (Timestamp.valueOf("2021-09-30 23:59:59"), 0.9),
    )
  )

但是,我无法使用显示数据类型不匹配错误的比较器函数。实现此输出的有效方法是什么?

您定义中的双打(例如 (Timestamp.valueOf("2021-09-30 23:59:59"), 0.9) 中)是 Scala 双打。 要么从比较器的签名中删除 JDouble,要么首先将双打转换为 JDoubles