Loading ...

Google Guava: utilizzare le Table

Google Guava: utilizzare le Table

Google Guava è una libreria per Java con diverse utilità.

Oggi vediamo come usare l'interfaccia Table!

Se usate Maven aggiungete questa dipendenza:

        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>

Riassumento possiamo dire che le Table sono come una Map di Map.

Ci permette di legare diverse chiavi in "gruppi"; come esempio, prenderemo tre suqadre di calcio, con tre giocatori ciascuna.

Ad ogni giocatore viene assegnato un ruolo.

Poi vederemo che prendere i giocatori di una squadra, o come prendere il dettaglio di un giocatore.

import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;

import java.util.Map;

public class Main {

    public static void main(String[] args) {
        Table<String, String, String> tbl = HashBasedTable.create();
        tbl.put("ROMA", "TOTTI", "CAPITANO");
        tbl.put("ROMA", "MONTELLA", "ATTACCANTE");
        tbl.put("ROMA", "ALDAIR", "DIFENSORE");

        tbl.put("BARCELLONA", "MESSI", "ATTACCANTE");
        tbl.put("BARCELLONA", "PUYOL", "DIFENSORE");
        tbl.put("BARCELLONA", "DANI ALVES", "TERZINO");

        tbl.put("INTER", "ZANETTI", "CAPITANO");
        tbl.put("INTER", "RONALDO", "ATTACCANTE");
        tbl.put("INTER", "BERGOMI", "DIFENSORE");

        Map<String, String> squadra = tbl.row("ROMA");
        for (Map.Entry<String, String> entry : squadra.entrySet()) {
            System.out.println("NOME: " + entry.getKey() + ", RUOLO: "
                    + entry.getValue());
        }

        Map<String,String> squadraMap =  tbl.column("TOTTI");

        for(Map.Entry<String, String> entry : squadraMap.entrySet()) {
            System.out.println("SQUADRA: " + entry.getKey() + ", RUOLO: "
                    + entry.getValue());
        }
    }

}

Enjoy!