小弟在看数据结构
看到排序这一章 (也就是冒泡)上面有那么一些话 我不是很理解
'我们打算排序的是数组而不是线性表,并且数组中的对象必须是Comparable的。'    问题1. 排序就排序好了 随便弄一个int类型的数组不就好了  为什么还需要数组中的对象是Comparable的呢?他为什么要这样做?

解决方案 »

  1.   

    比如String数组就不是Comparable的
      

  2.   

    如果一个对象比如 person 类。
    需要排序的时候。你的数组还有意义吗?
    Comparable接口声明了两对象的比较方法
    只要对象实现了Comparable接口
    那么排序算法就可以使用了
      

  3.   

    http://blog.ccidnet.com/blog.php?do=showone&uid=38421&type=blog&itemid=97332
    public interface Comparable<T>此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。
    看看这个吧,希望对LZ有帮助!
      

  4.   

    问题1. 排序就排序好了 随便弄一个int类型的数组不就好了  为什么还需要数组中的对象是Comparable的呢?他为什么要这样做? 
    如果是int数组当然没有必要使用Comparable,但是如果是MyObject对象数组呢?JVM怎么比较它们之间的大小?所以JVM声明了接口Comparable,要求MyObject实现两个对象之间大小的比较
      

  5.   

    如果你进行排序的不是基本类型,而是引用类型你怎么排序?只所以定义接口comparable是重写里面的compareTo()方法去实现具体两个对象之间怎么比较大小!
      

  6.   

    如果你的数组存放的是引用类型的话就要实现Comparable接口,这样才能实现比较啊,要不然人家怎么知道你想怎样比较
    基本类型的话就不用了