笔试时遇到整型数组拼接最大数问题,好长时间没写过,然后写出来有点乱。
仔细想想 使用比较器 能使逻辑看起来更清晰
public void makeMaxNum( int[] a){ String[] arr = new String[a.length]; for(int i=0;i<a.length;i++){ arr[i] = a[i]+""; } Arrays.sort(arr, new Comparator<String>() { @Override public int compare(String o1, String o2) { if((o1+o2).compareTo(o2+o1)>0){ return -1; }else{ return 1; } } }); System.out.println(Arrays.toString(arr)); }
此处得到的结果是拼接前的数组