ok la teoria, ma a livello pratico mi manca qualcosa:
stampando le due Map, vedo che me le ordina correttamente.codice:public Map<String, Long> countByAuthor(List<Book> booksList) { Map<String, Long> map = booksList.stream().collect(Collectors.groupingBy(Book::getAuthor, Collectors.counting())); Map<String, Long> sorted = sortByValues(map); return sorted; } public <K, V extends Comparable<V>> Map<K, V> sortByValues(Map<K, V> map) { Comparator<K> valueComparator = (k1, k2) -> { int compare = map.get(k2).compareTo(map.get(k1)); return (compare == 0) ? 1 : compare; }; Map<K, V> sortedByValues = new TreeMap<>(valueComparator); sortedByValues.putAll(map); System.out.println(map); System.out.println(sortedByValues); return sortedByValues; }
ora però dovrei usare limit(10) sulla Map sorted, giusto?

Rispondi quotando