/ / Comment comparer deux tableaux contenant les mêmes éléments ou pas en groovy? - tableaux, groovy, comparer

Comment comparer deux tableaux contenant les mêmes éléments ou pas dans groovy? - tableaux, groovy, comparer

Comment comparer deux tableaux contenant les mêmes éléments ou non?

def a = [1, 3, 2]
def b = [2, 1, 3]
def c = [2, 4, 3, 1]

a & b sont les mêmes articles, mais a & c pas.

Réponses:

13 pour la réponse № 1

Vous pouvez essayer de les convertir en ensembles, puis de les comparer, car l’égalité dans les ensembles est définie comme contenant les mêmes éléments, quel que soit leur ordre.

assert a as Set == b as Set
assert a as Set != c as Set

8 pour la réponse № 2

Il suffit de trier les résultats et de comparer les résultats si vos listes ne sont pas trop volumineuses:

def a = [1, 3, 2]
def b = [2, 1, 3]
def c = [2, 4, 3, 1]

def haveSameContent(a1, a2) {
a1.sort(false) == a2.sort(false)
}

assert haveSameContent(a, b) == true
assert haveSameContent(a, c) == false

le false transmis à sort est d'empêcher la réorganisation en place. Si vous pouvez modifier l’ordre des listes, vous pouvez le supprimer et éventuellement gagner un peu en performances.