Visualizzazione dei risultati da 1 a 10 su 20

Hybrid View

  1. #1
    intanto ho modificato il count per impostare il limit (e levare quel count):
    codice:
     public Map<String, Long> countByAuthor(List<Book> booksList) { 
            Map<String, Long> map = booksList.stream() 
                    .limit(10) 
                    .collect(Collectors.groupingBy(Book::getAuthor, Collectors.counting())); 
            return map; 
        }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    per impostare il limit
    Occhio che il limit è applicato sulla lista in ingresso, PRIMA di applicare il groupingBy. Quindi se la lista in ingresso non ha un qualche ordine preciso, sostanzialmente vai a raggruppare in modo parziale e un po' a caso.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Occhio che il limit è applicato sulla lista in ingresso, PRIMA di applicare il groupingBy. Quindi se la lista in ingresso non ha un qualche ordine preciso, sostanzialmente vai a raggruppare in modo parziale e un po' a caso.
    uhm ok.
    allora devo applicarlo dopo come ho fatto prima suppongo.
    perchè la lista in ingresso non devo ordinarla.
    io la map vorrei ordinarla per il count.
    in sostanza:
    codice:
    stephen king, 10
    clive cussler, 4
    thomas mann, 3
    sarebbe possibile?
    perchè non riesco ad applicare il sort sullo stream.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    io la map vorrei ordinarla per il count.
    sarebbe possibile?
    perchè non riesco ad applicare il sort sullo stream.
    Innanzitutto non puoi farlo solo con una mappa autore -> conteggio. Le mappe NON si ordinano per valore.
    Però da questa mappa ne puoi derivare un'altra in cui hai

    conteggio --> lista autori

    "lista autori" perché più autori possono avere lo stesso conteggio! Ma ora il conteggio è come "chiave", quindi se usassi es. TreeMap per questa seconda mappa, hai un ordine (scegli tu se ascendente o discendente) sul conteggio.
    A quel punto puoi prendere gli ultimi (o i primi) N conteggi.

    Si fa, serve solo qualche passo in più con gli stream.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.