Introduction aux tuples en Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les tuples sont une structure de données qui peut stocker des données de différents types dans une séquence ordonnée. Java ne propose pas de structure de données de tuple, mais nous pouvons utiliser des bibliothèques telles que Java tuples pour travailler avec eux.

Créer un Tuple en Java

Créer un tuple en Java est facile. Vous pouvez créer un nouveau tuple en spécifiant les types de données des éléments et leurs valeurs. Par exemple :

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Triplet<String, Double, Integer> tuple = Triplet.with("Hello", 3.14, 42);
        System.out.println(tuple);
    }
}

Dans cet exemple, nous créons un nouveau tuple Triplet qui contient un élément de type String, Double et Integer. Nous utilisons ensuite la méthode with() pour définir les valeurs des éléments et affichons le tuple dans la console.

Accéder aux valeurs d'un Tuple en Java

Vous pouvez accéder aux valeurs d'un tuple en Java en utilisant soit la méthode getValue() soit la méthode getValueX(), où X est l'indice de l'élément auquel vous souhaitez accéder. La méthode getValue() n'est pas sûre en termes de type, vous devrez donc convertir (caster) la valeur au bon type de données. En revanche, la méthode getValueX() est sûre en termes de type et ne nécessite pas de conversion.

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Triplet<String, Double, Integer> tuple = Triplet.with("Hello", 3.14, 42);

        // Access values using getValue()
        Integer value1 = (Integer)tuple.getValue(2);
        Double value2 = (Double)tuple.getValue(1);
        String value3 = (String)tuple.getValue(0);

        // Access values using getValueX()
        Integer value4 = tuple.getValue2();
        Double value5 = tuple.getValue1();
        String value6 = tuple.getValue0();

        System.out.println(value1 + " " + value2 + " " + value3);
        System.out.println(value4 + " " + value5 + " " + value6);
    }
}

Dans cet exemple, nous utilisons à la fois getValue() et getValueX() pour accéder aux valeurs du tuple Triplet. Nous affichons ensuite les valeurs dans la console.

Modifier les valeurs d'un Tuple en Java

Les tuples sont immuables, vous ne pouvez donc pas les modifier directement. À la place, vous pouvez utiliser la méthode setAtX() pour créer un nouveau tuple avec la valeur modifiée. La méthode setAtX() renvoie un nouveau tuple, assurez-vous donc de l'affecter à une variable.

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Triplet<String, Double, Integer> tuple = Triplet.with("Hello", 3.14, 42);

        Triplet<String, Double, Integer> newTuple = tuple.setAt1(2.71);

        System.out.println(tuple);
        System.out.println(newTuple);
    }
}

Dans cet exemple, nous utilisons la méthode setAt1() pour modifier le deuxième élément du tuple Triplet. Nous affichons ensuite dans la console à la fois le tuple original et le tuple modifié.

Ajouter des éléments à un Tuple en Java

Vous pouvez ajouter des éléments à un tuple en Java en créant un nouveau tuple de taille supérieure qui inclut les nouveaux éléments. Vous pouvez utiliser la méthode add() pour ajouter un élément à la fin du tuple, ou la méthode addAtX() pour insérer un élément à un index spécifique.

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Triplet<String, Double, Integer> tuple = Triplet.with("Hello", 3.14, 42);

        Quartet<String, Double, Integer, Boolean> newTuple1 = tuple.add(true);
        Quartet<String, Double, Boolean, Integer> newTuple2 = tuple.addAt2(true);

        System.out.println(tuple);
        System.out.println(newTuple1);
        System.out.println(newTuple2);
    }
}

Dans cet exemple, nous utilisons à la fois add() et addAtX() pour ajouter un nouvel élément de type Boolean au tuple Triplet. Nous affichons ensuite les trois tuples dans la console.

Supprimer des éléments d'un Tuple

Vous pouvez supprimer des éléments d'un tuple en Java en utilisant la méthode removeFromX(), où X est l'indice de l'élément que vous souhaitez supprimer. La méthode removeFromX() renvoie un nouveau tuple, assurez-vous donc de l'affecter à une variable.

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Quartet<String, Double, Integer, Boolean> tuple = Quartet.with("Hello", 3.14, 42, true);

        Triplet<Double, Integer, Boolean> newTuple1 = tuple.removeFrom0();
        Triplet<String, Double, Integer> newTuple2 = tuple.removeFrom3();

        System.out.println(tuple);
        System.out.println(newTuple1);
        System.out.println(newTuple2);
    }
}

Dans cet exemple, nous utilisons removeFrom0() et removeFrom3() pour supprimer le premier et le dernier élément du tuple Quartet. Nous affichons ensuite les trois tuples dans la console.

Parcourir un Tuple en Java

Vous pouvez parcourir un tuple en Java en utilisant la boucle for-each. Étant donné que les tuples implémentent l'interface Iterable, vous pouvez les utiliser dans une boucle comme toute autre collection.

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Triplet<String, Double, Integer> tuple = Triplet.with("Hello", 3.14, 42);

        for (Object element : tuple) {
            System.out.println(element);
        }
    }
}

Dans cet exemple, nous parcourons le tuple Triplet à l'aide d'une boucle for-each et affichons chaque élément dans la console.

Vérifier la présence d'un élément dans un Tuple en Java

Vous pouvez vérifier si un tuple contient un élément spécifique ou une collection d'éléments en utilisant les méthodes contains() et containsAll().

La méthode contains() renvoie true si le tuple contient l'élément donné, et containsAll() renvoie true si le tuple contient tous les éléments d'une collection.

import org.javatuples.*;

import java.util.Arrays;
import java.util.List;

public class TupleDemo {
    public static void main(String[] args) {
        Triplet<String, Double, Integer> tuple = Triplet.with("Hello", 3.14, 42);
        List<Integer> list = Arrays.asList(42, 7);

        boolean containsHello = tuple.contains("Hello");
        boolean containsWorld = tuple.contains("World");
        boolean containsAll = tuple.containsAll(list);

        System.out.println(containsHello);
        System.out.println(containsWorld);
        System.out.println(containsAll);
    }
}

Dans cet exemple, nous utilisons contains() et containsAll() pour vérifier si le tuple Triplet contient des éléments spécifiques ou une collection d'éléments. Nous affichons ensuite les résultats dans la console.

Obtenir l'index d'un élément dans un Tuple en Java

Vous pouvez obtenir l'index d'un élément spécifique dans un tuple en utilisant les méthodes indexOf() et lastIndexOf(). indexOf() renvoie l'index de la première occurrence de l'élément, tandis que lastIndexOf() renvoie l'index de la dernière occurrence.

import org.javatuples.*;

public class TupleDemo {
    public static void main(String[] args) {
        Quartet<String, Double, Integer, Integer> tuple = Quartet.with("a", 1.0, 1, 2);

        int firstIndex = tuple.indexOf(1);
        int lastIndex = tuple.lastIndexOf(1);

        System.out.println(firstIndex);
        System.out.println(lastIndex);
    }
}

Dans cet exemple, nous utilisons indexOf() et lastIndexOf() pour obtenir l'index de l'élément de type Integer dans le tuple Quartet. Nous affichons ensuite les résultats dans la console.

Convertir un Tuple en Tableau ou en Liste en Java

Vous pouvez convertir un tuple en tableau ou en liste en utilisant respectivement les méthodes toArray() et toList().

import org.javatuples.*;

import java.util.Arrays;
import java.util.List;

public class TupleDemo {
    public static void main(String[] args) {
        Quartet<String, Double, Integer, Boolean> tuple = Quartet.with("Hello", 3.14, 42, true);

        Object[] arr = tuple.toArray();
        List<Object> list = tuple.toList();

        System.out.println(Arrays.toString(arr));
        System.out.println(list);
    }
}

Dans cet exemple, nous utilisons toArray() et toList() pour convertir le tuple Quartet respectivement en tableau et en liste. Nous affichons ensuite les deux dans la console.

Résumé

Dans ce laboratoire (lab), nous avons appris à créer, accéder, modifier et parcourir des tuples en Java en utilisant la bibliothèque Java tuples. Nous avons également appris à ajouter et supprimer des éléments, à vérifier la présence d'éléments, à obtenir les indices des éléments et à convertir des tuples en tableaux ou en listes. En pratiquant ces méthodes, vous devriez maintenant être en mesure de travailler efficacement avec des tuples dans vos propres programmes Java.