import java.util.Arrays;
import java.util.List;
import java.util.Comparator;
import java.util.Collections;

public class OrdenarCorrecto {
   public static void main(String[] args) {
      List<String> strings = Arrays.asList("hola 1", "hola 5", "hola 15", "hola 2");
      Collections.sort(strings, new Comparator<String>() {
         public int compare(String o1, String o2) {
            return extractInt(o1) - extractInt(o2);
         }

         int extractInt(String s) {
            String num = s.replaceAll("\\D", "");
            return num.isEmpty() ? 0 : Integer.parseInt(num);
         }
      });
      System.out.println(strings);
   }
}