wie um zu überprüfen, ob eine Liste enthält eine Unterliste
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}"
}
}
Ich prüfen will ob große Liste (list
) enthält alle Elemente der Teilliste (l
)
Tut groovy haben keine eingebaute Methoden, um diese zu überprüfen oder was ich in den obigen code zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie Groovy ist
Collection.intersect(Collection right)
Methode und überprüfen Sie, ob der zurückgegebene Sammlung ist so groß, wie die, die als argument übergeben wird.Verwenden Sie den
String.tokenize()
Methode vor um eine Liste von String anstelle vonString.split()
die gibt einen String-array:Alternativ können Sie Groovy ist
Object.every(Closure closure)
Methode und überprüfen Sie, ob jedes element der Teilliste enthalten ist in der Liste:Aber der kürzeste Weg ist die Verwendung der standard-Java-Collection-API:
Die einfachste Methode ist einfach zu nennen:
Finden Sie mehr Informationen darüber hier: Groovy Collections
Ihre Lösung funktioniert. Werden Sie sicher, dass betrachten die Knuth–Morris–Pratt-Algorithmus wenn Sie den Umgang mit großen arrays von relativ wenigen diskreten Werten.