有人可以帮我理解以下内容吗?如果我创建元素的树形图,scala 似乎决定我的比较方法也确定元素的相等性,因此根据“比较”方法删除相同的元素。我没想到这一点,因为如果我没有覆盖它,仍然应该根据对象相等来定义相等?
import scala.collection.mutable._
class A(val num: Int) extends Ordered[A] {
def compare (that: A) = {
this.num - that.num
}
override def toString() = {
num+""
}
}
object A {
def main(args: Array[String]) = {
val mySet = new TreeSet[A]()
mySet += new A(3)
mySet += new A(2)
mySet += new A(1)
mySet += new A(3)
mySet += new A(2)
mySet += new A(1)
mySet.foreach(println)
}
}
给
1
2
3
不是预期的(我)
1
1
2
2
3
3