Vérifier si deux tableaux ont le même contenu (dans n'importe quel ordre)

Créé le 13 Dec 2022 - Mis à jour le 04 Jul 2023 - Créé par Fabien Berthoux - rubyarrays

Vérifier si deux tableaux ont le même contenu peut être une tâche difficile. Il existe des méthodes différentes pour le faire, suivant le type de données que l’on souhaite comparer. Si les deux tableaux ont le même contenu et que l'ordre des éléments n'a pas d’importance, la façon la plus simple est de les trier et de les comparer afin de vérifier si leurs éléments correspondent. La méthode la plus efficace est d'utiliser les fonctionnalités de comparaison de tableaux intégrées dans votre langage de programmation. Dans le cas de Ruby, la méthode #sort est très utile pour trier les tableaux et la méthode #eql? est utile pour comparer leurs contenus.


Comment comparer les tableaux en Ruby ?

En Ruby, la méthode #sort est très utile pour trier les tableaux et la méthode #eql? est utile pour comparer leurs contenus. Par exemple, si nous voulons comparer les tableaux suivants :

array1 = [1,2,3]
array2 = [3,2,1]

Nous pouvons utiliser la méthode #sort pour trier les tableaux et la méthode #eql? pour comparer leurs contenus :

sorted_array1 = array1.sort
sorted_array2 = array2.sort
sorted_array1.eql? sorted_array2

Cela nous donnera le résultat true, car les deux tableaux contiennent les mêmes éléments, même si leur ordre est différent.


Comment comparer les tableaux avec des valeurs différentes ?

Si les tableaux contiennent des valeurs différentes, vous pouvez les trier et les comparer en utilisant la méthode #sort et la méthode #eql?. Par exemple, si nous voulons comparer les tableaux suivants :

array1 = [1,2,3]
array2 = [3,2,4]

Nous pouvons utiliser la méthode #sort pour trier les tableaux et la méthode #eql? pour comparer leurs contenus :

sorted_array1 = array1.sort
sorted_array2 = array2.sort
sorted_array1.eql? sorted_array2

Cela nous donnera le résultat false, car les tableaux ne contiennent pas les mêmes éléments.


Une méthode plus efficace pour comparer les tableaux ?

La méthode la plus efficace pour comparer les tableaux est d'utiliser la méthode #zip. La méthode #zip permet de comparer deux tableaux en une seule étape. Par exemple, si nous voulons comparer les tableaux suivants :

array1 = [1,2,3]
array2 = [3,2,1]

Nous pouvons utiliser la méthode #zip pour comparer leurs contenus :

array1.zip(array2).all? { |a,b| a == b }

Cela nous donnera le résultat true, car les deux tableaux contiennent les mêmes éléments.


Comment comparer les tableaux avec des valeurs différentes ?

Si les tableaux contiennent des valeurs différentes, vous pouvez les comparer en utilisant la méthode #zip. Par exemple, si nous voulons comparer les tableaux suivants :

array1 = [1,2,3]
array2 = [3,2,4]

Nous pouvons utiliser la méthode #zip pour comparer leurs contenus :

array1.zip(array2).all? { |a,b| a == b }

Cela nous donnera le résultat false, car les tableaux ne contiennent pas les mêmes éléments.


Qu'est-ce que la méthode #zip ?

La méthode #zip est une méthode intégrée à Ruby qui permet de combiner deux tableaux en un seul tableau. Elle prend en entrée deux tableaux et les combine en un seul tableau contenant des tables d'association. Par exemple, si nous voulons combiner les tableaux suivants :

array1 = [1,2,3]
array2 = [4,5,6]

Nous pouvons utiliser la méthode #zip pour combiner leurs contenus :

array1.zip(array2)

Cela nous donnera le résultat :

[[1, 4], [2, 5], [3, 6]]