У меня есть список целых чисел, и я хотел бы распечатать все их элементы отсортированным способом, используя 2 свойства: размер списка и сумму элементов в списке.Я читаю метод thenComparing
streams *, но при попытке его использовать появляется ошибка.
Я написал некоторый код, который работает, но хотел бы знать, есть ли какой-нибудь другой более чистый способ сделать это.Заранее спасибо!
Map<List<Integer>, Double> entropies = new HashMap<>();
// Extra code removed
entropies.keySet()
.stream().sorted(Comparator.comparingInt(o -> {
List<Integer> a = (List<Integer>) o;
return a.size();
}).thenComparingInt(o -> {
List<Integer> a = (List<Integer>) o;
return a.stream().mapToInt(Integer::intValue).sum();
}))
.forEach(key -> logger.debug("{} => {}", key, entropies.get(key)));
То же, что и фактический результат, но без отливок было бы здорово.