0

私は、find、パターンマッチングを使用した検索、filter、foldLeftを使用してリストを検索することに少し力を入れています(日付を等しくするためにJodaを使用しています)。

オブジェクトのリストを検索して、別のオブジェクトと同じ日付の一致を見つける必要があります。

case class DD(time: Date, value: Double)
case class UT(time: Date, name: String, value: Double)

UTのリストが与えられた

var sdf = new SimpleDateFormat("yyyy-MM-dd")
var utList = Seq(UT(sdf.parse("2012-02-11"), "adf", 1), UT(sdf.parse("2012-02-13"), "adf", 2),UT(sdf.parse("2012-02-16"), "addf", 3)

DD.timeが一致するすべてのUTを見つける最も効率的な方法は?

または、さらに良いことに、リストを2つのサブリストに分割します。一方のリストには一致が含まれず、もう一方のリストにはDD.timeが一致するUTが含まれます。

4

2 に答える 2

2

utList.filter(ut => ut.time == dd.time)すべての一致する時間を取得するために使用

utList.partition(ut => ut.time == dd.time)パーティション化に使用します。

ddがDDのインスタンスであると仮定します。

于 2012-04-08T14:06:58.750 に答える
0

私は何かが欠けていると思いますが...:

val (matchingDate, notMatchingDate) =
  utList partition {_.time == sdf.parse("2012-02-13")}

DDインスタンスが1つしかない場合someDd

utList partition {_.time == someDd.time}
于 2012-04-08T14:03:48.820 に答える