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 № 1Vous 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.