JavaTuples en Java
-
Fonctionnalités de
JavaTuples
-
Tuple Classes dans
JavaTuples
-
Méthodes dans
JavaTuples
- Implémenter Tuple en Java
Un tuple est une structure de données qui peut stocker des objets sans nécessiter de relation entre eux mais qui ont un motif mutuel. Java ne supporte pas la structure de données tuple, mais nous pouvons utiliser une bibliothèque JavaTuples
.
Fonctionnalités de JavaTuples
- Les Tuples sont Typesafe
- Ils sont immuables
- Nous pouvons parcourir les valeurs de tuple
- Ils sont sérialisables
- Ils implémentent
Comparable<Tuple>
- Implémente des méthodes comme
equals()
,hashCode()
ettoString()
Tuple Classes dans JavaTuples
Nous pouvons utiliser jusqu’à dix éléments dans les classes tuple. Il existe des sous-classes spéciales pour chaque nombre d’éléments dans JavaTuples
qui sont mentionnés dans le tableau ci-dessous :
Nombre d’éléments (taille de tuple) | Nom du cours | Exemple |
---|---|---|
Un | Unit |
Unit<1> |
Deux | Pair |
Pair<1,2> |
Trois | Triplet |
Triplet<1,2,3> |
Quatre | Quartet |
Quartet<1,2,3,4> |
Cinq | Quintet |
Quintet<1,2,3,4,5> |
Six | Sextet |
Sextet<1,2,3,4,5,6> |
Sept | Septet |
Septet<1,2,3,4,5,6,7> |
Huit | Octet |
Octet<1,2,3,4,5,6,7,8> |
Neuf | Ennead |
Ennead<1,2,3,4,5,6,7,8,9> |
Dix | Decade |
Decade<1,2,3,4,5,6,7,8,9,10> |
Méthodes dans JavaTuples
La classe Tuple
fournit diverses méthodes pour effectuer des opérations.
Méthode | La description |
---|---|
equals() |
Il est utilisé pour remplacer l’implémentation par défaut de la méthode equals de la classe Object |
hashCode() |
Renvoie un code de hachage pour chaque objet. |
toString() |
Renvoie une représentation sous forme de chaîne |
getSize() |
Renvoie la taille des tuples |
getValue() |
Renvoie une valeur à une position spécifiée dans un tuple |
indexOf() |
Renvoie l’index de la sous-chaîne demandée dans une chaîne donnée. |
contains() |
Vérifier si un élément existe dans le tuple |
containsAll() |
Vérifie si tous les éléments d’une liste ou d’un tableau existent dans le tuple ou non |
iterator() |
Retourne un itérateur |
lastIndexOf() |
Renvoie le dernier index de la sous-chaîne demandée dans une chaîne donnée. |
toArray() |
Tuple à tableau |
toList() |
Tuple à la liste |
Implémenter Tuple en Java
Nous importons la dépendance basée sur maven suivante pour utiliser la bibliothèque JavaTuples
.
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>[1.2]</version>
<scope>compile</scope>
</dependency>
Dans l’exemple, nous implémentons les différentes classes de tuples dans le tableau ci-dessus et obtenons leurs valeurs en les imprimant. Nous fournissons différents types de données dans les tuples comme String
, Integer
, Boolean
, etc.
Nous créons également une classe DummyClass
et passons son objet dans les tuples si elle renvoie une erreur.
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 {}
Production :
[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