Visualizzazione dei risultati da 1 a 10 su 20

Hybrid View

  1. #1
    si infatti così funziona:
    codice:
        public <T> Map<String, Long> groupJson(File file, TypeToken<T> typeToken) throws IOException { 
            Map<String, Long> map; 
            try (JsonReader reader = new JsonReader(new FileReader(file))) { 
                List<Book> list = gson.fromJson(reader, typeToken.getType()); 
                map = list.stream().collect(Collectors.groupingBy(Book::getAuthor, Collectors.counting())); 
            } 
            return map; 
        }
    allora, cercando di evolvere ulteriormente il metodo:
    - dovrei raggruppare sia per getAuthor, che per getEditor (in punti diversi del programma), ma non saprei come indicare per cosa ragguppare
    - se volessi generalizzare la lista, sarebbe possibile (List<Book>)? me lo chiedo perchè mi viene in mente che se lo generalizzo per List<T>, ovviamente poi non ha accesso diretto ai metodi getAuthor e getEditor, quindi come si può generalizzare la lista? (penso che questa domanda si indirettamente collegata alla prima....).

  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
    - dovrei raggruppare sia per getAuthor, che per getEditor (in punti diversi del programma), ma non saprei come indicare per cosa ragguppare
    Quindi author E editor come "chiave composta" per la classificazione applicata dal groupingBy?
    Allora dovresti fare una classe che rappresenta l'insieme di author E editor.

    Quote Originariamente inviata da fermat Visualizza il messaggio
    se volessi generalizzare la lista, sarebbe possibile (List<Book>)? me lo chiedo perchè mi viene in mente che se lo generalizzo per List<T>, ovviamente poi non ha accesso diretto ai metodi getAuthor e getEditor, quindi come si può generalizzare la lista? (penso che questa domanda si indirettamente collegata alla prima....).
    Innanzitutto consiglio: separa la lettura/parsing da JSON da altre logiche di analisi/raggruppamenti.

    Quindi un metodo es.

    public List<Book> readBooksJson(File file) throws IOException

    (il TypeToken lo puoi fare all'interno o tenerlo come campo static final, dato che sostanzialmente è una "costante").

    e poi es.

    public Map<String,Long> countBooksByAuthor(List<Book> booksList)
    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.