如何创建没有上限的 SortedSet 的范围投影
How can I create a ranged projection of a SortedSet with no upper-bound
我有一个可变的 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
almost 方法给了我我需要的东西,但它不起作用,因为它需要一个索引作为参数,而我没有。
// this gives me the lower half
set.until(median)
// how do I get the upper half?
有没有什么好的方法可以得到没有上限的远程投影?或者,是否有一种好的方法来获取用于 splitAt
方法的正确索引?理想情况下,我想找到性能最高的解决方案。
我有一个可变的 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
almost 方法给了我我需要的东西,但它不起作用,因为它需要一个索引作为参数,而我没有。
// this gives me the lower half
set.until(median)
// how do I get the upper half?
有没有什么好的方法可以得到没有上限的远程投影?或者,是否有一种好的方法来获取用于 splitAt
方法的正确索引?理想情况下,我想找到性能最高的解决方案。