详情见代码:
public class Test{
public static <T extends Comparable<T>> void sort(T[] arr){
boolean sorted=true;
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){//从左到右进行比较
if(((Comparable)arr[j]).compareTo(arr[j+1])<0){//交换位置
T temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
sorted=false;
}
}
if(sorted==true){//优化,减少比较次数
break;
}
}
}
public static void main(String[] args){
Date[] arr=new Date[3];
arr[0]=new Date();
arr[1]=new Date(System.currentTimeMillis()-1000*60*60);
arr[2]=new Date(System.currentTimeMillis()+1000*60*60);
Test.sort(arr);
System.out.println(Arrays.toString(arr));
String[] a={"ca","bsc","ac","beds","abc"};
Test.sort(a);
System.out.println(Arrays.toString(a));
}
}
强制转换为Comparable类型用comparaTo进行比较