fork download
  1.  
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.io.OutputStreamWriter;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.Comparator;
  10. import java.util.HashMap;
  11. import java.util.Iterator;
  12. import java.util.List;
  13.  
  14. public class Main {
  15. public static void main(String args[]) throws NumberFormatException, IOException {
  16. int num = Integer.parseInt(br.readLine());
  17. String[] str = new String[num];
  18. for(int i = 0; i < str.length; i++) {
  19. str[i] = br.readLine();
  20. }
  21.  
  22. HashMap<String, Integer> map = new HashMap<String, Integer>();
  23. int temp = 0;
  24. for (int i = 0; i < str.length; i++) {
  25. temp = 0;
  26. for (int j = 0; j < str[i].length(); j++) {
  27. temp += str[i].charAt(j) - 48;
  28. }
  29. map.put(str[i], temp);
  30. }
  31.  
  32.  
  33. Iterator<String> iter = mapSort(map).iterator();
  34. while (iter.hasNext()) {
  35. bw.write(String.valueOf(iter.next()));
  36. bw.newLine();
  37. }
  38.  
  39. bw.close();
  40.  
  41. }
  42.  
  43. public static List<String> mapSort(final HashMap<String, Integer> map) {
  44. List<String> list = new ArrayList<String>();
  45. list.addAll(map.keySet());
  46.  
  47. Collections.sort(list, new Comparator<Object>() {
  48. @Override
  49. public int compare(Object o1, Object o2) {
  50. Object ob1 = map.get(o1);
  51. Object ob2 = map.get(o2);
  52. if((int)ob2 > (int) ob1) {
  53. return 1;
  54. }else if( (int)ob2 < (int)ob1) {
  55. return -1;
  56. }else {
  57. return 0;
  58. }
  59. }
  60. });
  61. Collections.reverse(list);
  62. return list;
  63. }
  64.  
  65.  
  66. }
  67.  
Success #stdin #stdout 0.04s 2184192KB
stdin
2
aaaaaaaaaa
zzzzzzzzz
stdout
aaaaaaaaaa
zzzzzzzzz