我有一个可变的SortedSet对象,我想根据给定的中位数将其分成两半。因为中间对象不在集合中,所以它没有要拆分的索引。
import scala.collection.mutable.SortedSet
class MyClass(val x:Int)
// order based on a property of the object
val order = Ordering[Int].on[MyClass](mc => mc.x)
val set = SortedSet[MyClass]()(order)
set += new MyClass(3)
set += new MyClass(5)
val median = new MyClass(4)
我可以使用to
或until
来获得没有下限的远程投影,但我无法弄清楚如何获得没有上限的远程投影。方法splitAt
几乎给了我我需要的东西,但它不起作用,因为它将索引作为参数,我没有。
// this gives me the lower half
set.until(median)
// how do I get the upper half?
有没有一种很好的方法可以获得没有上限的远程投影?或者,是否有一种很好的方法可以获得用于splitAt
方法的正确索引?理想情况下,我希望找到性能最佳的解决方案。