use*_*773 0 scala set sortedset
我创建了一套特定的dto.
dto名为"NumericValue",并具有以下类成员:1)time:Long 2)value:Double
我有一个名为"点"的集合,我想根据增加的时间对其进行排序,即0,1,2,4,100 ......
附件是代码:
val points: set(NumericValue) = numericValueSet
val setSorted = collection.immutable.SortedSet[Long]() ++ points
Run Code Online (Sandbox Code Playgroud)
我做了以下事情:
但是结果没有按时间排序.
谢谢
结果不是未分类的,因为Ordering您的课程没有.
你可以明确地实现Ordered:
case class NumericValue(time: Long, value: Double) extends Ordered[NumericValue] {
override def compare(that: NumericValue): Int =
Ordering[Long].compare(this.time, that.time)
}
Run Code Online (Sandbox Code Playgroud)
或Ordering为您的集合创建:
val set = SortedSet[NumericValue]()(new Ordering[NumericValue]() {
override def compare(x: NumericValue, y: NumericValue): Int =
Ordering[Long].compare(x.time, y.time)
})
Run Code Online (Sandbox Code Playgroud)
结果应该订购:
set + NumericValue(345, 45) + NumericValue(453, 123) + NumericValue(5, 5)
res0: scala.collection.SortedSet[NumericValue] = TreeSet(NumericValue(5,5.0), NumericValue(345,45.0), NumericValue(453,123.0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |