详情见代码:
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进行比较
