JavaTuples en Java

Rupam Yadav 12 octobre 2023
  1. Fonctionnalités de JavaTuples
  2. Tuple Classes dans JavaTuples
  3. Méthodes dans JavaTuples
  4. Implémenter Tuple en Java
JavaTuples 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() et toString()

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]
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

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