Creare tabelle in Java con Google Guava

Mattepuffo's logo
Creare tabelle in Java con Google Guava

Creare tabelle in Java con Google Guava

Google Guava ci mette a disposizione l'interfaccia Table per creare strutture/collezioni tabellari.

Ha diverse implementazioni:

  • HashBasedTable che internamente usa LinkedHashMap

  • TreeBasedTable che usa TreeMap e che è consigliato quando volete la collezione ordinata

  • ImmutableTable per tabelle immutabili

  • ArrayTable quando già le chiavi riga/colonna

  • altre eventuali che non conosco

Se usate Maven:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>33.3.1-jre</version>
</dependency>

Qui sotto un esempio di codice con HashBasedTable:

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

public class Main {
  public static void main(String[] args) {
    Table table = HashBasedTable.create();
    table.put("Matteo", "email@email.com", 1);
    table.put("Matteo", "email@email.com", 2);
    table.put("matteo", "email@email.com", 3);

    table
        .rowMap()
        .forEach((rowKey, row) -> {
          System.out.println(rowKey + ": ");
          row.forEach((colKey, value) -> {
            System.out.println(colKey + ", " + value);
          });
          System.out.println("-----");
        });
  }
}

Come potete vedere dall'iterazione, avremmo solo due record, in quanto LinkedHashMap non accetta doppioni.

Enjoy!


Condividi

Commentami!