使用优先级队列解决此问题。

import java.util.*;
public class Solution {
    public String PrintMinNumber(int [] numbers) {
        // 自定义排序规则
        PriorityQueue<Integer> queue = new PriorityQueue<Integer>((a,b)->{return (Integer.valueOf(a + "" + b))-(Integer.valueOf(b + "" + a));});
        for(int i : numbers){
            queue.add(i);
        }
        String res = "";
        int size = queue.size();
        for(int i = 0; i < size; i++){
            res += String.valueOf(queue.poll());
        }
        return res;
    }
}