把数组排成最小的数

来源:互联网 发布:网贷之家数据分析 编辑:程序博客网 时间:2024/05/21 04:22

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。


import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class PrintMinNumber {    public String printMinNumber(int[] numbers)    {        ArrayList<Integer> list = new ArrayList<>();        for(int i : numbers)        {            list.add(i);        }        Collections.sort(list, new Comparator<Integer>() {            public int compare(Integer o1, Integer o2)            {                String str1 = o1+""+o2;                String str2 = o2+""+o1;                return str1.compareTo(str2);            }        });        StringBuilder sb = new StringBuilder();        for(Integer integer : list)        {            sb.append(integer);        }        return sb.toString();    }}
0 0