comment vérifier si une liste contient une sous-liste
def l = ["My", "Homer"]
String s = "Hi My Name is Homer"
def list = s.split(" ")
println list
list.each{it ->
l.each{it1 ->
if (it == it1)
println "found ${it}"
}
}
Je veux vérifier si la grande liste (list
) contient tous les éléments de la sous-liste (l
)
Ne groovy ont tout construit dans les méthodes de vérification ce ou de ce que j'ai dans le code ci-dessus?
OriginalL'auteur Omnipresent | 2009-12-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Groovy du
Collection.intersect(Collection right)
méthode et de vérifier si la Collection retournée est aussi grand que celui qui est passé en argument.Vous devez utiliser le
String.tokenize()
méthode avant de générer une Liste à partir de la Chaîne, au lieu deString.split()
qui retourne un tableau de chaînes:Sinon, vous pouvez utiliser Groovy du
Object.every(Closure closure)
méthode et de vérifier si chaque élément de la sous-liste est contenue dans la liste:Cependant, le moyen le plus rapide est l'utilisation de la norme Java API Collection:
OriginalL'auteur Christoph Metzendorf
La méthode la plus simple consiste à appeler:
Vous pouvez trouver plus d'informations à ce sujet ici: Groovy Collections
OriginalL'auteur Brandon
De votre solution. Assurez-vous de considérer la Knuth–Morris–Pratt algorithme si vous avez affaire à de grands tableaux de relativement peu de valeurs discrètes.
Je ne suis pas au courant de tout.
OriginalL'auteur Matthew