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的呢?
谢谢! 展开
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的呢?
谢谢! 展开
3个回答
展开全部
普通数据类型数组直接可以排序。
Arrays.sort(int[] a);只有对象才有
Comparable概念,基本数据类型根本不存在,直接比较。
Arrays.sort(int[] a);只有对象才有
Comparable概念,基本数据类型根本不存在,直接比较。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你的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);
}
}
=======================================================
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询