Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

Tableau Java deepEquals()

La méthode Arrays.deepEquals() fait partie de la classe java.util.Arrays et est utilisée pour comparer deux tableaux afin de déterminer s'ils sont profondément égaux. Cette méthode est particulièrement utile pour comparer des tableaux imbriqués (tableaux contenant des tableaux) lorsqu'une simple méthode equals() ne suffirait pas.

Utilisation

Arrays.deepEquals() est conçu pour traiter les tableaux multidimensionnels en effectuant une comparaison profonde. Il vérifie si deux tableaux sont structurellement égaux et contiennent les mêmes éléments dans le même ordre, y compris les tableaux imbriqués.

Syntax

public static boolean deepEquals(Object[] a1, Object[] a2)
  • a1: Le premier tableau à comparer.
  • a2: Le deuxième tableau à comparer.

La méthode renvoie true si les deux tableaux sont profondément égaux, sinon elle renvoie false.

Exemples

Exemple 1 : Comparaison de tableaux simples

import java.util.Arrays;

public class SimpleArrayComparison {
    public static void main(String[] args) {
        String[] array1 = {"Java", "Python", "C++"};
        String[] array2 = {"Java", "Python", "C++"};
        boolean result = Arrays.deepEquals(array1, array2);
        System.out.println("Are the simple arrays deeply equal? " + result);
    }
}

Dans cet exemple, Arrays.deepEquals() est utilisé pour comparer deux tableaux unidimensionnels simples contenant des chaînes de caractères. Comme les tableaux contiennent les mêmes éléments dans le même ordre, la méthode renvoie true.

Exemple 2 : Comparaison de tableaux imbriqués

import java.util.Arrays;

public class NestedArrayComparison {
    public static void main(String[] args) {
        String[][] array1 = {{"Java", "Python"}, {"C++", "JavaScript"}};
        String[][] array2 = {{"Java", "Python"}, {"C++", "JavaScript"}};
        boolean result = Arrays.deepEquals(array1, array2);
        System.out.println("Are the nested arrays deeply equal? " + result);
    }
}

Cet exemple illustre l'utilisation de Arrays.deepEquals() pour comparer deux tableaux imbriqués. La méthode identifie correctement que les deux tableaux sont profondément égaux parce que leur structure et leur contenu correspondent.

Exemple 3 : Comparaison de tableaux de structures différentes

import java.util.Arrays;

public class DifferentStructureComparison {
    public static void main(String[] args) {
        String[][] array1 = {{"Java", "Python"}, {"C++"}};
        String[][] array2 = {{"Java", "Python"}, {"C++", "JavaScript"}};
        boolean result = Arrays.deepEquals(array1, array2);
        System.out.println("Are the arrays with different structures deeply equal? " + result);
    }
}

Dans cet exemple, deux tableaux imbriqués de structures différentes sont comparés. La méthode renvoie false parce que le deuxième tableau imbriqué dans array1 ne correspond pas au tableau correspondant dans array2.

Conseils et bonnes pratiques

  • Utilisation pour les tableaux imbriqués: Préférez Arrays.deepEquals() à Arrays.equals() lorsque vous traitez des tableaux imbriqués ou multidimensionnels afin de garantir une comparaison complète.
  • Traitement des nullités: La méthode traite les valeurs null avec élégance. Deux tableaux null sont considérés comme profondément égaux, et un tableau null n'est pas égal à un tableau non nul.
  • Considération de la performance: Soyez attentif aux performances lorsque vous utilisez Arrays.deepEquals() avec de très grands tableaux, car cela implique une comparaison récursive des éléments.
  • Éléments immuables: Veillez à ce que les éléments des tableaux soient immuables ou ne soient pas modifiés pendant la comparaison afin d'éviter des résultats incohérents.

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement