Creare tabelle in Kotlin 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.2.1-android</version>
</dependency>
Qui sotto un esempio di codice con HashBasedTable:
import com.google.common.collect.HashBasedTable
fun main() {
val 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) ->
println("$rowKey: ")
row.forEach { (colKey, value) ->
println("$colKey, $value")
}
println("-----")
}
}
Come potete vedere dall'iterazione, avremmo solo due record, in quanto LinkedHashMap non accetta doppioni.
Enjoy!
kotlin maven guava hashbasedtable
Commentami!