日期:2014-05-20  浏览次数:20694 次

问一个 继承comparable对象 的数组的问题。
小弟在看数据结构
看到排序这一章 (也就是冒泡)

上面有那么一些话 我不是很理解
'我们打算排序的是数组而不是线性表,并且数组中的对象必须是Comparable的。'  

问题1. 排序就排序好了 随便弄一个int类型的数组不就好了 为什么还需要数组中的对象是Comparable的呢?他为什么要这样做?



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





------解决方案--------------------
http://blog.ccidnet.com/blog.php?do=showone&uid=38421&type=blog&itemid=97332
public interface Comparable<T>此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。
看看这个吧,希望对LZ有帮助!
------解决方案--------------------
问题1. 排序就排序好了 随便弄一个int类型的数组不就好了 为什么还需要数组中的对象是Comparable的呢?他为什么要这样做? 


如果是int数组当然没有必要使用Comparable,但是如果是MyObject对象数组呢?JVM怎么比较它们之间的大小?所以JVM声明了接口Comparable,要求MyObject实现两个对象之间大小的比较
------解决方案--------------------
如果你进行排序的不是基本类型,而是引用类型你怎么排序?只所以定义接口comparable是重写里面的compareTo()方法去实现具体两个对象之间怎么比较大小!
------解决方案--------------------
Java code
如果你的数组存放的是引用类型的话就要实现Comparable接口,这样才能实现比较啊,要不然人家怎么知道你想怎样比较
基本类型的话就不用了

------解决方案--------------------
探讨
大家真聪明啊  小弟想了半天的问题  原来只是那么回事  就是确认这个数组是可以排序的 如此而已额。。。。

------解决方案--------------------
如果你进行排序的不是基本类型,而是引用类型你怎么排序