JavaTuples en Java
-
Características de
JavaTuples
-
Tupla Clases en
JavaTuples
-
Métodos en
JavaTuples
- Implementar Tuple en Java
Una tupla es una estructura de datos que puede almacenar objetos sin que se requiera ninguna relación entre ellos pero que tengan un motivo mutuo. Java no admite la estructura de datos de tupla, pero podemos usar una biblioteca JavaTuples
.
Características de JavaTuples
- Las Tuplas son Typesafe
- Son inmutables
- Podemos iterar a través de valores de tupla
- Son serializables
- Implementan
Comparable<Tuple>
- Implementa métodos como
equals()
,hashCode()
, ytoString()
Tupla Clases en JavaTuples
Podemos usar hasta diez elementos en clases de tupla. Hay subclases especiales para cada número de elementos en JavaTuples
que se mencionan en la siguiente tabla:
No. de Elementos (Tamaño de Tupla) | Nombre de la clase | Ejemplo |
---|---|---|
Una | Unit |
Unit<1> |
Dos | Pair |
Pair<1,2> |
Tres | Triplet |
Triplet<1,2,3> |
cuatro | Quartet |
Quartet<1,2,3,4> |
Cinco | Quintet |
Quintet<1,2,3,4,5> |
Seis | Sextet |
Sextet<1,2,3,4,5,6> |
Siete | Septet |
Septet<1,2,3,4,5,6,7> |
Ocho | Octet |
Octet<1,2,3,4,5,6,7,8> |
Nueve | Ennead |
Ennead<1,2,3,4,5,6,7,8,9> |
Diez | Decade |
Decade<1,2,3,4,5,6,7,8,9,10> |
Métodos en JavaTuples
La clase Tuple
proporciona varios métodos para realizar operaciones.
Método | Descripción |
---|---|
equals() |
Se utiliza para anular la implementación por defecto del método equals de la clase Object |
hashCode() |
Devuelve un código hash para cada objeto. |
toString() |
Devuelve una representación de cadena |
getSize() |
Devuelve el tamaño de las tuplas. |
getValue() |
Devuelve un valor en una posición especificada en una tupla |
indexOf() |
Devuelve el índice de la subcadena solicitada en una cadena determinada. |
contains() |
Comprobar si existe un elemento en la tupla |
containsAll() |
Comprueba si todos los elementos de una lista o matriz existen en la tupla o no |
iterator() |
Devuelve un iterador |
lastIndexOf() |
Devuelve el último índice de la subcadena solicitada en una cadena determinada. |
toArray() |
Tupla a matriz |
toList() |
Tupla a lista |
Implementar Tuple en Java
Importamos la siguiente dependencia basada en maven para usar la biblioteca JavaTuples
.
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>[1.2]</version>
<scope>compile</scope>
</dependency>
En el ejemplo, implementamos varias clases de tuplas en la tabla anterior y obtenemos sus valores imprimiéndolos. Proporcionamos diferentes tipos de datos en las tuplas como String
, Integer
, Boolean
, etc.
También creamos una clase DummyClass
y pasamos su objeto en las tuplas si arroja un error.
import org.javatuples.*;
public class JavaTuplesExample {
public static void main(String[] args) {
Unit<String> unitTuple = new Unit<>("First Tuple Element");
Pair<String, Integer> pairTuple = new Pair<>("First Tuple Element", 2);
Triplet<String, Integer, Boolean> tripletTuple = new Triplet<>("First Tuple Element", 2, true);
Quartet<String, Integer, Boolean, String> quartetTuple =
new Quartet<>("First Tuple Element", 2, true, "Fourth Tuple Element");
Quintet<String, Integer, Boolean, String, Integer> quintetTuple =
new Quintet<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5);
Sextet<String, Integer, Boolean, String, Integer, DummyClass> sextetTuple =
new Sextet<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5, new DummyClass());
Septet<String, Integer, Boolean, String, Integer, DummyClass, Integer> septetTuple =
new Septet<>(
"First Tuple Element", 2, true, "Fourth Tuple Element", 5, new DummyClass(), 7);
Octet<String, Integer, Boolean, String, Integer, DummyClass, Integer, String> octetTuple =
new Octet<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5, new DummyClass(), 7,
"Eight Tuple Element");
Ennead<String, Integer, Boolean, String, Integer, DummyClass, Integer, String, Integer>
enneadTuple = new Ennead<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5,
new DummyClass(), 7, "Eight Tuple Element", 9);
Decade<String, Integer, Boolean, String, Integer, DummyClass, Integer, String, Integer, String>
decadeTuple = new Decade<>("First Tuple Element", 2, true, "Fourth Tuple Element", 5,
new DummyClass(), 7, "Eight Tuple Element", 9, "Tenth Tuple Element");
System.out.println(unitTuple);
System.out.println(pairTuple);
System.out.println(tripletTuple);
System.out.println(quartetTuple);
System.out.println(quintetTuple);
System.out.println(sextetTuple);
System.out.println(septetTuple);
System.out.println(octetTuple);
System.out.println(enneadTuple);
System.out.println(decadeTuple);
}
}
class DummyClass {}
Producción :
[First Tuple Element]
[First Tuple Element, 2]
[First Tuple Element, 2, true]
[First Tuple Element, 2, true, Fourth Tuple Element]
[First Tuple Element, 2, true, Fourth Tuple Element, 5]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@254989ff]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@5d099f62, 7]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@37f8bb67, 7, Eight Tuple Element]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@49c2faae, 7, Eight Tuple Element, 9]
[First Tuple Element, 2, true, Fourth Tuple Element, 5, DummyClass@20ad9418, 7, Eight Tuple Element, 9, Tenth Tuple Element]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn