我正在嘗試按時間戳降序排列我的值元組。我的代碼是
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),
)
)
但是,我無法使用顯示資料型別不匹配錯誤的比較器函式。實作此輸出的有效方法是什么?
uj5u.com熱心網友回復:
您定義中的雙精度數(例如 in (Timestamp.valueOf("2021-09-30 23:59:59"), 0.9))是 Scala 雙精度數。從比較器的簽名中洗掉 JDouble 或者您應該首先將雙打轉換為 JDouble
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/455951.html
