请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这里泛型 E 使用的compareTo() 具体的是怎么比较的?

波波老师,这里添加操作中进行两个节点的比较,我们知道,对于自定义的对象,需要实现 Comparable 接口,并自定义实现 compareTo()方法, 但是这里并没有在E 这个泛型的类中重写Comparable 中的compareTo() 方法,因此这里的compareTo() 是根据什么进行比较的呢?我如果可以通过源码看的到具体比较的方法?谢谢!

正在回答

1回答

由于我们进行了泛型限制:

public class BST<E extends Comparable<E>>


所以,我们知道,存储在这个BST中的类型E,一定实现了Comparable接口。所以我们可以放心的调用comareTo。具体它是怎么实现的,BST不管!传来的是Integer,用的就是Integer的compareTo;传来的是String,用的就是String的compareTo。如果传来Student,这个Student必须实现了Comparable接口,也就是必须自定义了compareTo,用的就是自定义的那个compareTo:)

0 回复 有任何疑惑可以回复我~
  • 提问者 CarlosLiu #1
    明白了,就是储存在BST 中的对象的类一定是要实现Comparable 且实现compareTo() 方法的。
    回复 有任何疑惑可以回复我~ 2018-11-09 11:07:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信