* @Description 把數組排成最小的數
* @問題:輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。
* 例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321323。
* @思路:
* 1:將數組轉化為list;
* 2:對list進行排序,重寫compara構造方法,最小排序;
* 3:對排序后的list進行累加;
jdk中關于重寫compare方法:

?
compareTo方法::

?
?
?
?
package LG.nowcoder;import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;/*** @Author liguo* @Description 把數組排成最小的數* @問題:輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。* 例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321323。* @思路:* @Data 2018-08-17 8:57*/ public class Solution13 {public String PrintMinNumber(int [] numbers) {int n;String s="";ArrayList<Integer> list=new ArrayList<Integer>();n=numbers.length;for(int i=0;i<n;i++){list.add(numbers[i]);//將數組放入arrayList中 }//實現了Comparator接口的compare方法,原來的compare方法是從小到大排序,所以需要重寫;//將集合元素按照compare方法的規則進行排序Collections.sort(list,new Comparator<Integer>(){@Overridepublic int compare(Integer int1, Integer int2) {String s1=int1+""+int2;String s2=int2+""+int1;return s1.compareTo(s2) ; //對于string進行從小到大的排序; }});for(int j:list){s+=j;}return s;} }
?
?