ciao andbin!
c'è qualcosa che mi sfugge:
il secondo output ritorna il numero di libri e poi una lista per tutti gli autori che hanno scritto quel numero di libri, corretto?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);
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):
cioè:codice:clive cussler = 5 stephen king = 10 stephne king, clive cussler = 1
- 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!!).

Rispondi quotando