Creare tabelle in Kotlin con Google Guava

Mattepuffo's logo
Creare tabelle in Kotlin con Google Guava

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!


Condividi

Commentami!