JAVA 关于comparable的用法

程序是weiss数据结构书里的插入排序的例程,我想写个主函数来试验,但不太明白comparable的用法publicclassinsertSort{/***@parama... 程序是weiss数据结构书里的插入排序的例程,我想写个主函数来试验,但不太明白comparable的用法

public class insertSort {

/**
* @param args
*/
public insertSort(){
;
}

public static void insertionSort( Comparable []a)
{

int j;

for (int p =1; p<a.length; p++)
{
Comparable tmp = a[p];

for (j = p; j>0 && tmp.compareTo(a[j-1])<0;j--)
a[j] = a[j-1];
a[j] = tmp;
}
}

这个时候,Comparable下面是有黄线的,我不知道该如何修改,我就想把a数组弄成一个int数组就可以了,所以主函数是
public static void main(String[] args) {
// TODO Auto-generated method stub

int[]a = new int[10];
insertSort t = new insertSort();
a[0] = 1;
a[1] = 9;
a[2] = 15;
a[3] = 3;
a[4] = 25;
a[5] = 2;
a[6] = 0;
a[7] = 7;
a[8] = 8;
a[9] = 4;
t.insertionSort(a);

}
但是最后一句话报错了,因为a是comparable的,可是我在主函数里写的是int,请问我该怎么把一个int数组编程comparable的呢?

谢谢!
展开
 我来答
招心竹0
2011-03-04 · TA获得超过738个赞
知道答主
回答量:47
采纳率:100%
帮助的人:38.8万
展开全部
注意,你的参数是Comparable [],也就是实现了Comparable接口的类的对象数组。但是int是基本类型!不是Comparable接口的子类,你将int[]a = new int[10];改为Integer[] a = new Integer[10];就不会有错了,因为Integer,是int类型的包装,实现了该接口:Comparable。
daay1986
2011-03-04 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1478万
展开全部
普通数据类型数组直接可以排序。
Arrays.sort(int[] a);只有对象才有
Comparable概念,基本数据类型根本不存在,直接比较。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xhxyes111
2011-03-04 · TA获得超过2900个赞
知道小有建树答主
回答量:278
采纳率:100%
帮助的人:386万
展开全部
给你的compareable加上泛型,换成int的包装类Integer就OK了
=======================================================
public class insertSort {

/**
* @param args
*/
public insertSort(){
}

public void insertionSort( Comparable<Integer> []a){

int j;

for (int p =1; p<a.length; p++){
Comparable<Integer> tmp = a[p];
for (j = p; j>0 && tmp.compareTo((Integer) a[j-1])<0;j--)
a[j] = a[j-1];
a[j] = tmp;
}
}

public static void main(String[] args) {

Integer[]a = new Integer[10];
insertSort t = new insertSort();
a[0] = 1;
a[1] = 9;
a[2] = 15;
a[3] = 3;
a[4] = 25;
a[5] = 2;
a[6] = 0;
a[7] = 7;
a[8] = 8;
a[9] = 4;
t.insertionSort(a);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式