ciao andbin!

c'è qualcosa che mi sfugge:
codice:
        Map<String, Long> map = booksList.stream().collect(Collectors.groupingBy(Book::getAuthor, Collectors.counting())); 
        Map<Long, List<String>> sorted = map 
                .entrySet() 
                .stream() 
                .collect(Collectors.groupingBy(Map.Entry::getValue, TreeMap::new, Collectors.mapping(Map.Entry::getKey, Collectors.toList()))); 
 
        System.out.println(map); 
        System.out.println(sorted);
il secondo output ritorna il numero di libri e poi una lista per tutti gli autori che hanno scritto quel numero di libri, corretto?
però non tiene conto ad esempio del fatto che sul db alcuni autori sono salvati insieme.
se 5 autori hanno scritto insieme un libro, quegli autori sono messi insieme come se fosse unico,
quindi io potrei avere (ad esempio):
codice:
clive cussler = 5
stephen king = 10
stephne king, clive cussler = 1
cioè:
- ho 5 libri di clive cussler
- ho 10 libri di stephen king
- ho un libro scritto insieme

invece l'output non tiene conto di questo se non erro (e soprattutto, se sono riuscito a spiegarmi!!).