2010-10-26 5 views
0

J'utilise groovy dans SOAPUI et j'essaie actuellement d'établir si la réponse de deux points d'extrémité donne les mêmes résultats.Recherche du contenu d'un tableau dans un autre tableau

Je convertis ma réponse XML en un tableau pour chaque point de terminaison, puis je boucle en Array1 puis Array2 pour confirmer la présence de chaque élément dans Array1.

Ceci est un code très moche et j'ai regardé des cartes, mais la syntaxe m'a confondu. Je ne sais pas comment je créerais une telle carte d'un tableau. Comment créez-vous les clés dans un tel cas?

En attendant, pour le bien de mes wellbeing..Is il une façon plus élégante de réaliser les objectifs suivants:

def outerCount = 0 
def innerCount = 0 
for(i in arrayOfInvoicesSTAGE) 
{ 

for(j in arrayOfInvoicesSTAGE2) 
{ 

    if (i == j) 
    { 
     log.info outerCount+" FOUND "+arrayOfInvoicesSTAGE[outerCount] + " in both responses" 
     log.info "STAGE: "+i+" STAGE2: "+j 
    }  
} 
outerCount++ 
} 

aussi! pour les pouces bonus! Quelqu'un peut-il me conseiller sur la façon dont je pourrais faire une pause dans la boucle intérieure afin qu'elle saute une fois qu'un match a été trouvé? J'ai vu le code JS qui permet cela, mais ne peut pas obtenir quelque chose de similaire à travailler dans groovy

En effet, ce qui précède est le plus smell de code ... mais je dois graisser les articulations en quelque sorte .. il est ça fait longtemps! :)

Comme toujours, tous les conseils sont appréciés.

Répondre

0
def a = ["1thing","2thing","3thing"] 
def b = ["1thing","2thing","3thing","4thing"] 

// should return any element not in both lists 
if (a.size < b.size) { 
    b - a 
} else { 
    a - b 
} 
+0

Je ne pense pas que cela fonctionnerait si 'a' était' [1,2,3,4,5] 'et' b' était '[2,3,6]' –

1

listes ont une méthode Intersect dans Groovy

def a = [ 1, 2, 3, 4, 5 ] 
def b = [ 2, 3, 6 ] 


a.intersect(b).each { item -> 
    log.info "Found $item in both responses" 
} 

Je pense que fait ce que vous voulez?

Questions connexes