Bom, primeiro você tem que separar os números, ou pelo menos conta-los.
Eu faria com um map, como no exemplo abaixo:
import java.util.Map;
import java.util.TreeMap;
public class Numeros {
public static void main(String[] args) {
Map<Integer, Integer> contagens = new TreeMap<Integer, Integer>();
int numeros[] = {123,123,123,132,132,145,145,156,234,234,234,236,236,236};
//Usa um mapa para contar quantos elementos repetidos de cada tipo existem
for (int numero : numeros) {
if (!contagens.containsKey(numero)) //Não tem o número?
contagens.put(numero, 1); //Contamos 1
else //Já tem ?
contagens.put(numero, contagens.get(numero) + 1); //Somamos 1
}
//Impressão dos números
for (Map.Entry<Integer, Integer> contagem : contagens.entrySet()) {
for (int i = 0; i < contagem.getValue(); i++)
System.out.print(contagem.getKey() + " ");
System.out.println();
}
}
}
Se você precisar manter a lista dos números, considere usar um Map<Integer, List<Integer>> ao invés de um Map<Integer, Integer>.
A saída desse programa é:
123 123 123
132 132
145 145
156
234 234 234
236 236 236