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!
java maven google guava table hashbasedtable
Commentami!