fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. String[] nombres = {"hola 1", "hola 5", "hola 15", "hola 2"};
  13.  
  14. String[][] nombresAOrdenar = new String[nombres.length][2];
  15.  
  16. for (int i=0; i< nombres.length ; i++) {
  17. //Extrae valores de array, el numero serĂ¡ la columna a ordenar.
  18. String[] parts = nombres[i].split(" ");
  19. nombresAOrdenar[i][0] = parts[1];
  20. nombresAOrdenar[i][1] = parts[0];
  21. }
  22.  
  23. //Ordena valores por columna 1 (indice 0)
  24. Arrays.sort(nombresAOrdenar, new ColumnComparator(0));
  25.  
  26. //Agrega valores ordenados a array original
  27. for (int j=0; j< nombres.length ; j++) {
  28. nombres[j] = nombresAOrdenar[j][1].toString() + " "+ nombresAOrdenar[j][0].toString();
  29. }
  30.  
  31. //Imprime valores de Array ya ordenado
  32. for (String nombre : nombres) {
  33. System.out.print(nombre + ", ");
  34. }
  35. }
  36.  
  37.  
  38.  
  39. static class ColumnComparator implements Comparator {
  40. int columnToSort;
  41. ColumnComparator(int columnToSort) {
  42. this.columnToSort = columnToSort;
  43. }
  44. //sobreescribe metodo compare
  45. public int compare(Object o1, Object o2) {
  46. String[] row1 = (String[]) o1;
  47. String[] row2 = (String[]) o2;
  48.  
  49. int res = Integer.parseInt(row1[0].toString()) - Integer.parseInt(row2[0].toString());
  50. return res;
  51. }
  52. }
  53.  
  54.  
  55.  
  56.  
  57. }
Success #stdin #stdout 0.05s 4575232KB
stdin
Standard input is empty
stdout
hola 1, hola 2, hola 5, hola 15,