关于java的comparable接口问题。

publicclassGenericSort{publicstaticvoidmain(String[]args){Integer[]intArray={newInteg... public class GenericSort {

public static void main(String[] args) {
Integer[] intArray = {new Integer(2), new Integer(4),
new Integer(3)};
Double[] doubleArray = {new Double(3.4), new Double(1.3),
new Double(-22.1)};
Character[] charArray = {new Character('a'),
new Character('J'), new Character('r')};
String[] stringArray = {"Tom", "John", "Fred"};
sort(intArray);
sort(doubleArray);
sort(charArray);
sort(stringArray);
System.out.print("Sorted Integer objects: ");
printList(intArray);
System.out.print("Sorted Double objects: ");
printList(doubleArray);
System.out.print("Sorted Character objects: ");
printList(charArray);
System.out.print("Sorted String objects: ");
printList(stringArray);
}
public static void sort(Comparable[] list) {
Comparable currentMin;
int currentMinIndex;
for (int i = 0; i < list.length - 1; i++) {
currentMin = list[i];
currentMinIndex = i;
for (int j = i + 1; j < list.length; j++) {
if (currentMin.compareTo(list[j]) > 0) {
currentMin = list[j];
currentMinIndex = j;
}
}
if (currentMinIndex != i) {
list[currentMinIndex] = list[i];
list[i] = currentMin;
}
}
}
public static void printList(Object[] list) {
for (int i = 0; i < list.length; i++)
System.out.print(list[i] + " ");
System.out.println();
}
}
为什么可以直接用comparable[]这样的数组?是不是所有可以比较的对象都是comparable的实例?
为什么使用comparable这个接口不用关键字implements?
展开
 我来答
lzb18
推荐于2018-04-16 · TA获得超过286个赞
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:143万
展开全部
1. 像Integer、String等这些基本类型的JAVA封装类都实现了Comparable接口,所以这里的sort方法可以把Comparable作为参数。
2. 你是说GenericSort类为什么不implements Comparable吗?GenericSort只是使用了Comparable的对象,没有实现Comparable的必要啊
miraclelord
2014-02-25 · TA获得超过272个赞
知道答主
回答量:228
采纳率:0%
帮助的人:163万
展开全部
在java中Double\Character\String这几个类都实现了comparable接口, sort方法用的是多态的原理, 翻翻书吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式