Puede que existan diferentes maneras de manejar datos, como el uso de HashMaps o diccionarios, pero hay situaciones en las que necesitas una herramienta más potente. En este post, te daremos a conocer Java Tuple para que logres una gestión de datos mucho más simplificada.
¿Qué es Java Tuple?
Con una tupla puedes organizar datos en un orden específico. Sí, puede que te suene igual a lo que haría un diccionario o un HashMap, pero la gran diferencia es que una tupla no usa claves para acceder a los valores. Entonces, ¿Cómo funciona? Lo que hace es almacenar los datos en un orden fijo, así puedes acceder a ellos según la posición en que se encuentren y no será necesario que recuerdes ninguna clave.
Debes saber que, en Java tienes que usar una librería llamada Java Tuples, porque a diferencia de C# o TypeScript, las tuplas no vienen integradas de manera nativa. Cuando tengas la librería puedes crear tuplas capaces de almacenar entre dos y diez elementos en una sola estructura. Lo grandioso es que, puedes combinar varios tipos de datos en una sola tupla y no tendrás que preocuparte por asignar claves o gestionar los valores por separado.
Cómo usar Java Tuple
El proceso para implementar una tupla no es complejo. Primero encárgate de añadir la librería Java Tuples a tu proyecto Maven, esto lo logras agregando la siguiente dependencia en tu archivo pom.xml:
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>1.2</version>
</dependency>
Podrás empezar a hacer uso de Java Tuple cuando ya tengas esta dependencia en tu proyecto.
Ejemplo básico de Java Tuple
Para este ejemplo vas a imaginar que quieres almacenar el titulo de un libro y su autor, pero como no necesitas claves evitarás el uso de diccionarios y optarás por usar una tupla de dos elementos.
import org.javatuples.Pair;
public class Principal {
public static void main(String[] args) {
Pair<String, String> tupla = new Pair<>("titulo", "Java para todos");
System.out.println("Columna: " + tupla.getValue0());
System.out.println("Valor: " + tupla.getValue1());
}
}
Puedes observar que se creó un código más limpio y directo, algo que no hubiese pasado al usar un diccionario. Además, se creó una tupla que guarda dos elementos: el nombre de la columna y su valor. De modo que, la salida sería algo así:
Columna: titulo
Valor: Java para todos
¿Por qué usar Java Tuple en lugar de HashMap?
Sabemos que HashMap es una gran herramienta para la organización de datos que usa un sistema clave/valor, pero en la mayoría de las ocasiones no es necesario esta función. Por ejemplo, cuando sabemos con anticipación el orden de los datos o solo deseamos almacenar pocos valores relacionados, una tupla hará un mejor trabajo.
Comparación con HashMap
Para que no te queden dudas, con este ejemplo te darás cuenta cuándo es mejor usar una tupla en lugar de un diccionario o HashMap:
// Ejemplo usando HashMap
Map<String, String> mapa = new HashMap<>();
mapa.put("columna", "titulo");
mapa.put("valor", "Java para todos");
String consulta = "select " + mapa.get("columna") + " from libros where " + mapa.get("columna") + "='" + mapa.get("valor") + "'";
System.out.println(consulta);
Si observas bien, con HashMap estamos obligados a gestionar claves para poder acceder a los valores. En cambio, con la tupla el código queda simplificado porque reduce el código innecesario:
// Ejemplo usando Java Tuple
Pair<String, String> tupla = new Pair<>("titulo", "Java para todos");
String consulta = "select " + tupla.getValue0() + " from libros where " + tupla.getValue1() + "='" + tupla.getValue1() + "'";
System.out.println(consulta);
Tipos de Tuplas en Java
Algo que debes tener en cuenta es que, puedes almacenar hasta 10 valores diferentes en una sola tupla. Así es como lograrás flexibilidad cuando trabajes con múltiples datos relacionados. Estas son las tuplas más comunes en Java Tuples:
- Pair: Una tupla de dos elementos.
- Triplet: Una tupla de tres elementos.
- Quartet: Una tupla de cuatro elementos.
- Quintet: Una tupla de cinco elementos.
- Sextet: Una tupla de seis elementos.
- Septet: Una tupla de siete elementos.
- Octet: Una tupla de ocho elementos.
- Ennead: Una tupla de nueve elementos.
- Decade: Una tupla de diez elementos.
¿En qué te beneficia esto? Pues si tienes un conjunto de datos que se relaciona, pero tú no quieres crear un objeto para almacenarlos, simplemente usa una tupla con el número de elementos que necesitas.
Entonces, cuando debas almacenar más de dos valores, usa una tupla de tres elementos, de esta manera:
import org.javatuples.Triplet;
public class Principal {
public static void main(String[] args) {
Triplet<String, Integer, String> triplet = new Triplet<>("Libro", 2023, "Autor");
System.out.println("Título: " + triplet.getValue0());
System.out.println("Año: " + triplet.getValue1());
System.out.println("Autor: " + triplet.getValue2());
}
}
Como ves, se almacenaron tres valores: el título de un libro, el año de la publicación y el nombre del autor.
Almacenar múltiples valores de una forma organizada y accesible sí es posible con Java Tuple. De paso, mejorarás la legibilidad de tu código y lograrás que sea más fácil de mantener. Aunque no sea propio de Java, puedes aprovechar esta funcionalidad con la librería Java Tuples.
Tu aprendizaje apenas está empezando. Avanza de nivel y aprende otras herramientas parecidas a Java Tuples con nuestro Bootcamp Java Full Stack de KeepCoding. Este programa está diseñado para que domines no solo los conceptos básicos de Java, sino también las tecnologías avanzadas como Spring Boot, Hibernate y mucho más. Logra un gran cambio profesional ingresando a uno de los sectores más demandados, con altos salarios y estabilidad laboral. ¡Anímate e ingresa hoy mismo!