2017-06-27 1 views
0

Gibt es einen Ninja-Trick zum Überprüfen einer Liste enthält beide Elemente? Ich denke an so etwas wie jedeÜberprüfung einer Liste enthält beide Elemente oder nur eine

Grundsätzlich möchte ich den Code unten neu geschrieben werden:

List<String> elements = ["first", "fourth"] 
List<String> longList = ["first", "second", "third", "fourth"] 
boolean haveAll = elements ? true : false 

elements.each { String element -> 
    haveAll &= longList.any {element==it} 
} 

assert haveAll == true 

longList = ["first", "second", "third"] 
elements.each { String element -> 
    haveAll &= longList.any {element==it} 
} 

assert haveAll == false 

Antwort

1

Ich bezweifle dies als Ninja Trick qualifiziert, aber es scheint, den Job

List<String> longList = ["first", "second", "third", "fourth"] 

boolean hasAll = longList.containsAll(["first", "fourth"]) 
boolean hasAny = ["not in long list", "first"].any { 
    it in longList 
} 

// check that it worked 
assert hasAll && hasAny 
zu tun
2

können Sie verwenden every und any:

def elements = ["first", "fourth"] 
def longList = ["first", "second", "third", "fourth"] 

assert elements.every { it in longList } 
assert elements.any { it in longList } 
Verwandte Themen