Scala访问有序集的元素

时间:2015-06-24 17:37:01

标签: scala set sortedset

我有一个SortedSet[Int]对象,我希望能够通过检索mySet(sizeOfMySet/2)来找到它的中位数,但它只会说真假的内容。还有其他方法可以检索元素吗?

2 个答案:

答案 0 :(得分:2)

"end","RR","begin"

如果您确定该集合是非空的(因此不需要scala> val sorted = collection.immutable.SortedSet(5,3,1,7,2) sorted: scala.collection.immutable.SortedSet[Int] = TreeSet(1, 2, 3, 5, 7) scala> val half = sorted.size / 2 half: Int = 2 scala> val median = sorted.slice(half, half+1).headOption median: Option[Int] = Some(3) 来涵盖该情况),您可以使用Option

答案 1 :(得分:1)

这是一种如何在对象集合中获得中位数的方法。

val sorted = collection.immutable.SortedSet(5,3,1,2,4,6)
val size = sorted.size
val median = if(size%2==0){
 // if there is a pair number of items, 
 // the median is the average of the two central elements
 (sorted.take(size/2+1).range(size/2, size/2+2).sum)/2.0
}
else{
 sorted.take(size/2+1).last
}