Simple solution using JAVA 8 with Array


#1
public String largestNumber(final int[] A) {

    Integer[] a = Arrays.stream(A)
            .boxed()
            .toArray(Integer[]::new);

    Arrays.sort(a, new Comparator<Integer>() {
        public int compare(Integer o1, Integer o2) {
            return (o2 + "" + o1).compareTo(o1 + "" + o2);
        }
    });

    StringBuilder sb = new StringBuilder();

    if (a[0] == 0) {
        return "0";
    }

    for (Integer integer : a) {
        sb.append(integer);
    }
    return sb.toString();
}