Arrays.sort(T[] a, Comparator<? super T> c)
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
public String PrintMinNumber(int [] numbers) {
if(numbers.length==0)
return "";
String[] str=new String[numbers.length];
StringBuilder sb=new StringBuilder();
for(int i=0;i<numbers.length;i++)
{
str[i]=String.valueOf(numbers[i]);
}
Arrays.sort(str,new Comparator<String>(){
public int compare(String str1,String str2){
String c1=str1+str2;
String c2=str2+str1;
return c1.compareTo(c2);
}
});
for(int i=0;i<str.length;i++){
sb.append(str[i]);
}
return sb.toString();
}
-
根据指定的比较器引发的顺序对指定的对象数组进行排序。 数组中的所有元素必须通过指定的比较器相互比较 (即
c.compare(e1, e2)
不能为ClassCastException
中的任何元素e1
和e2
)。这种保证是稳定的 :等同的元素将不会被排序作为排序的结果。