fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. List l1, l2, l3, l4, l5, l6, l7, l8;
  5.  
  6. Main() {
  7. System.out.println(f(l1));
  8. System.out.println(f(l2));
  9. System.out.println(f(l3));
  10. System.out.println(f(l4));
  11. System.out.println(f(l5));
  12. System.out.println(f(l6));
  13. System.out.println(f(l7));
  14. System.out.println(f(l8));
  15. }
  16.  
  17. public static void main(String[] args){
  18. new Main();
  19. }
  20.  
  21. List f(List l){
  22. l.sort(Comparator.comparing(o -> {
  23. if (o instanceof Integer)
  24. return (Integer) o;
  25. f((List) o);
  26. return ((List) o).stream().filter(i -> i instanceof Integer).mapToInt(i -> (Integer) i).sum();
  27. }));
  28. return l;
  29. }
  30.  
  31. {
  32. l1 = new ArrayList(Arrays.asList(1, 2, 3));
  33.  
  34. l2 = new ArrayList(Arrays.asList(1, 2, 6, 3, 9, 8));
  35.  
  36. l3 = new ArrayList(Arrays.asList(4, 3, new ArrayList(Arrays.asList(2)), new ArrayList(Arrays.asList(1))));
  37.  
  38. l4 = new ArrayList(Arrays.asList(4, 3, new ArrayList(Arrays.asList(2)),
  39. new ArrayList(Arrays.asList(
  40. new ArrayList(Arrays.asList(1))
  41. ))
  42. ));
  43.  
  44. l5 = new ArrayList(Arrays.asList(5,
  45. new ArrayList(Arrays.asList(1, 2,
  46. new ArrayList(Arrays.asList(9, 8))
  47. ))
  48. ));
  49.  
  50. l6 = new ArrayList(Arrays.asList(3,
  51. new ArrayList(Arrays.asList(1, 2)),
  52. new ArrayList(Arrays.asList(2, 1))
  53. ));
  54.  
  55. l7 = new ArrayList(Arrays.asList(3,
  56. new ArrayList(Arrays.asList(1, 2,
  57. new ArrayList(Arrays.asList(99))
  58. )),
  59. new ArrayList(Arrays.asList(2, 1,
  60. new ArrayList(Arrays.asList(34))
  61. ))
  62. ));
  63.  
  64. l8 = new ArrayList(Arrays.asList(7, 2,
  65. new ArrayList(Arrays.asList(1,
  66. new ArrayList(Arrays.asList(9, 12))
  67. )),
  68. new ArrayList(Arrays.asList(4, 3, 2,
  69. new ArrayList(Arrays.asList(1, 2))
  70. ))
  71. ));
  72. }
  73. }
Success #stdin #stdout 0.23s 320832KB
stdin
Standard input is empty
stdout
[1, 2, 3]
[1, 2, 3, 6, 8, 9]
[[1], [2], 3, 4]
[[[1]], [2], 3, 4]
[[1, 2, [8, 9]], 5]
[3, [1, 2], [1, 2]]
[3, [1, 2, [99]], [1, 2, [34]]]
[[1, [9, 12]], 2, 7, [2, 3, [1, 2], 4]]