关于老师java代码中的疑问

来源:2-2 使用模板(泛型)编写算法

mly魉

2018-01-16

第二章的02-Selection-Sort-Using-Comparable中的java代码,在StudentSort类中,sort方法中的参数是Comparable[],swap方法中的参数是Object[],       Comparable[]和Object[]有什么区别吗?为什么不都用Object[]或者都用Comparable[]

写回答

1回答

liuyubobobo

2018-01-17

Comparable是实现了Comparable接口的类,指“可比较”的类;Object是所有的类的父类。


在这里,对一个数组进行sort,元素必须是“可以比较”的,所以传给sort的数组是Comparable[]的;但是交换数组中的两个元素,对这个数组中的元素是没有“可比较”的要求的。不过鉴于我们的swap方法是放在Sort类里面的,将swap方法中的数据改为Comparable[]是可以的;但是反之不可以。


如果想设计一个Utility类,其中有一个方法是swap,此时传入的数组应该是Object[]的。用户没有必要为了可以交换数组中的两个元素,而让数组中的元素一定“可以比较”。

2
1
mly魉
非常感谢!
2018-01-17
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程