public class StringCmp implements Comparator{
public int compare(String e1,String e2){
int len1 = e1.length();
int len2 = e2.length();
return len1-len2;
}
}
public static void sort(Object[] arr,Comparator cmp){
boolean sorted = true;//假定有序
for(int i=0;i<arr.length-1;i++ ){
for(int j=i+1;j<arr.length/*减少次数*/-i-1;j++){
if(cmp.compare(arr[i], arr[i+1])<0){
Object temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
sorted = false;
}
}
if(sorted){ //假定成功跳出,减少趟数
break;
}
}
//System.out.println(Arrays.toString(arr));
}
public class DemoString {
public static void main(String args[]){
//按照长度进行比较
String arr = new String[]{"a","abcd","abc","def"};
util.sort(arr, new StringCmp());
System.out.println(Arrays.toString(arr));
}
}
输出
[abcd, a, abc, def]