Si utiliza un TreeSet, tengo un (alargada) de una sola línea para usted (suponiendo items
es el TreeSet):
final String[] arr =
items.toString() // string representation
.replaceAll("\\D+", " ") // replace all non digits with spaces
.trim() // trim ends
.split(" "); // split by spaces
prueba código:
Set<Integer> items = new TreeSet<Integer>(Arrays.asList(5, 1, 2, 11, 3));
// insert above code here
System.out.println(Arrays.toString(arr));
salida:
[1, 2, 3, 5, 11]
EDIT:
OK, aquí es una versión diferente que funciona con la matriz int directamente. Pero lamentablemente no es de una sola línea.Sin embargo, lo hace mantener duplicados y es probable que sea más rápido
nuevo EDIT:
Bug fijo y los números negativos apoyado, conforme a lo solicitado:
EDITAR vez más: sólo un pase de expresiones regulares y ningún ajuste
final int[] in = { 5, 1, 2, 11, 3, 2, -5 }; // with duplicate
Arrays.sort(in);
final String[] out =
Arrays.toString(in)
.replaceAll("(?:\\[?)([-\\d]+)(?:\\]?)", "$1") // just remove [ and ]
.split("\\s*,\\s*"); // split by comma
System.out.println(Arrays.toString(out));
salida:
[-5, 1, 2, 2, 3, 5, 11]
o completamente sin expresión regular (aparte de split()), pero con un paso más añadido:
final int[] in = { 5, 1, 2, 11, 3, 2, -5 }; // with duplicate
Arrays.sort(in);
final String stringRep = Arrays.toString(in);
final String[] out =
stringRep.substring(1, stringRep.length() - 1).split("\\s*,\\s*");
System.out.println(Arrays.toString(out));
Salida:
[-5, 1, 2, 2, 3, 5, 11]
Actualización: despojado espacios en blanco de mis dos últimas soluciones , espero que estés feliz ahora :-)
favor RETAG su pregunta con el idioma apropiado. –
¿Por qué quieres evitar los bucles? Cualquier solución que surja tendrá algún tipo de ciclo, incluso si está oculto detrás de una llamada a un método. –
Dice "Esto es para Java", tiene una etiqueta de Java, y no se ha editado, ¡su comentario parece inútil! no creo que es posible completar esto sin un bucle (unos pocos realmente desde la clasificación sólo puede hacerse a través de algún tipo de proceso de bucle/iterativa). – Rudu