programing

groovy array/hash/collection/list의 요소 확인 방법

powerit 2023. 4. 13. 21:13
반응형

groovy array/hash/collection/list의 요소 확인 방법

어레이에 요소가 포함되어 있는지 확인하려면 어떻게 해야 합니까?이런 게 있을 것 같아서[1, 2, 3].includes(1)그것은 평가될 것이다.true.

약간의 구문설탕

1 in [1,2,3]

목록에는 .contains()가 가장 좋지만 맵에는 .containsKey() 또는 .containsValue()를 사용해야 합니다.

[a:1,b:2,c:3].containsValue(3)
[a:1,b:2,c:3].containsKey('a')

리스트의 경우는,contains:

[1,2,3].contains(1) == true

Membership 연산자를 사용할 수 있습니다.

def list = ['Grace','Rob','Emmy']
assert ('Emmy' in list)  

멤버십 오퍼레이터 그루비

ArrayList에 포함 메서드를 포함하려면 다음 명령을 추가합니다.

ArrayList.metaClass.includes = { i -> i in delegate }

중요 도메인 등의 오브젝트 컬렉션에서 .contains()를 사용하기 위한 Gotcha.도메인 선언에 EqualsAndHashCode 또는 Ojbects가 동일한지 여부를 판단하기 위한 다른 Equals() 구현이 포함되어 있으며, 이렇게 설정되어 있는 경우...

import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode(includes = "settingNameId, value")

그러면 .contains(myObjectToCompareTo)는 myObjectToCompareTo 내의 데이터를 컬렉션 내의 각 오브젝트인스턴스 데이터와 함께 평가합니다.그래서, 만약 당신의 동등한 방법이 내 방식처럼 충분하지 않다면, 당신은 예상치 못한 결과를 볼 수 있을 것입니다.

def fruitBag = ["orange","banana","coconut"]
def fruit = fruitBag.collect{item -> item.contains('n')}

이렇게 해서 찾는 사람이 있으면 돼요.

다음과 같은 정규 표현으로 일치 항목을 사용할 수도 있습니다.

boolean bool = List.matches("(?i).*SOME STRING HERE.*")

언급URL : https://stackoverflow.com/questions/51927/how-to-check-if-element-in-groovy-array-hash-collection-list

반응형