关于老师java代码中的疑问
来源:2-2 使用模板(泛型)编写算法
mly魉
2018-01-16
第二章的02-Selection-Sort-Using-Comparable中的java代码,在StudentSort类中,sort方法中的参数是Comparable[],swap方法中的参数是Object[], Comparable[]和Object[]有什么区别吗?为什么不都用Object[]或者都用Comparable[]
写回答
1回答
-
Comparable是实现了Comparable接口的类,指“可比较”的类;Object是所有的类的父类。
在这里,对一个数组进行sort,元素必须是“可以比较”的,所以传给sort的数组是Comparable[]的;但是交换数组中的两个元素,对这个数组中的元素是没有“可比较”的要求的。不过鉴于我们的swap方法是放在Sort类里面的,将swap方法中的数据改为Comparable[]是可以的;但是反之不可以。
如果想设计一个Utility类,其中有一个方法是swap,此时传入的数组应该是Object[]的。用户没有必要为了可以交换数组中的两个元素,而让数组中的元素一定“可以比较”。
212018-01-17
相似问题