(Object array, Object key1, Object key2, Object desc2)
| 107 | } |
| 108 | |
| 109 | public static List<Object> sortBy2(Object array, Object key1, Object key2, Object desc2) { |
| 110 | boolean desc = (desc2 instanceof Boolean b) ? b : false; |
| 111 | List<Object> lst = (List<Object>) array; |
| 112 | |
| 113 | if (key1 instanceof String k1 && key2 instanceof String k2) { |
| 114 | List<Object> sorted = new ArrayList<>(lst); |
| 115 | sorted.sort(Comparator |
| 116 | .comparing((Object s) -> { |
| 117 | Object v = ((Map<String, Object>) s).get(k1); |
| 118 | return v == null ? null : v.toString(); |
| 119 | }, Comparator.nullsFirst(Comparator.naturalOrder())) |
| 120 | .thenComparing((Object s) -> { |
| 121 | Object v = ((Map<String, Object>) s).get(k2); |
| 122 | return v == null ? null : v.toString(); |
| 123 | }, Comparator.nullsFirst(Comparator.naturalOrder())) |
| 124 | ); |
| 125 | if (desc) Collections.reverse(sorted); |
| 126 | return sorted; |
| 127 | } |
| 128 | return null; |
| 129 | } |
| 130 | |
| 131 | // ---------- filterBy ---------- |
| 132 |
no test coverage detected