public static void InsertionSort(Comparable[] a, int length){
for (int i = 1; i < length; i++){
for(int j = i; j > 0; j--){
if(a[j].compareTo(a[i]) > 0){
Integer b = (Integer)a;
swap(b, j, i);
}
else{
break;
}
}
}
}
public static void swap(Integer[] myArr,int a, int b){
int temp;
temp = myArr[a];
myArr[a] = myArr[b];
myArr[b] = temp;
}
为什么不能将接口转发到实现它的实例?我想将a转发为Integer类型,因为它是一个类似的类型。然后使用采用Integer类型的swap方法,但这是非法的。
答案 0 :(得分:0)
你不需要演员。如果你知道它是这种类型(整数),你首先会把它变成一个整数。
public static void insertionSort(Comparable[] a) {
for (int i = 1; i < a.length; i++)
for (int j = i - 1; j >= 0; j--)
if (a[i].compareTo(a[j]) > 0)
swap(a, i, j);
else
break;
}
public static void swap(Comparable[] myArr, int a, int b) {
Comparable temp = myArr[a];
myArr[a] = myArr[b];
myArr[b] = temp;
}