답변:
.contains ()는 목록에 가장 적합한 방법이지만 맵의 경우 .containsKey () 또는 .containsValue ()를 사용해야합니다.
[a:1,b:2,c:3].containsValue(3)
[a:1,b:2,c:3].containsKey('a')
if(aMap["aKey"]==aValue)
.
일부 구문 설탕
1 in [1,2,3]
def m = [a: true]; 'a' in m
→ 사실이지만 def m = [a: false]; 'a' in m
→ 거짓!
목록을 보려면 다음을 사용하십시오 contains
.
[1,2,3].contains(1) == true
true == true
물론, 확실히 #joke
중요 도메인과 같은 객체 컬렉션에서 .contains ()를 사용하는 데 어려움이 있습니다. Domain 선언에 EqualsAndHashCode 또는 다른 equals () 구현이 포함되어 해당 Ojbect가 동일한 지 여부를 판별하고 다음과 같이 설정 한 경우 ...
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode(includes = "settingNameId, value")
그런 다음 .contains (myObjectToCompareTo)는 Collection의 각 Object 인스턴스에 대한 데이터로 myObjectToCompareTo의 데이터를 평가합니다. 따라서 equals 메소드가 스너프하지 않으면 내 것이 아니기 때문에 예기치 않은 결과가 나타날 수 있습니다.