arrays - empty - ¿Cómo verificar si el elemento en groovy array/hash/collection/list?
groovy map list (6)
.contains () es el mejor método para las listas, pero para los mapas necesitarás usar .containsKey () o .containsValue ()
[a:1,b:2,c:3].containsValue(3)
[a:1,b:2,c:3].containsKey(''a'')
¿Cómo averiguo si una matriz contiene un elemento? Pensé que podría haber algo como [1, 2, 3].includes(1)
que se evaluaría como true
.
IMPORTANTE Consiguió utilizar .contains () en una Colección de objetos, como Dominios. Si la declaración del dominio contiene un EqualsAndHashCode, o alguna otra implementación de igual a () para determinar si esos Ojbects son iguales, y usted lo ha configurado así ...
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode(includes = "settingNameId, value")
a continuación, .contains (myObjectToCompareTo) evaluará los datos en myObjectToCompareTo con los datos para cada instancia de objeto en la colección. Por lo tanto, si su método de igualdad no está a la altura, como el mío no lo era, es posible que vea resultados inesperados.
Para las listas, el uso contains
:
[1,2,3].contains(1) == true
Si realmente quieres incluir tu método en una ArrayList, simplemente agrégala:
ArrayList.metaClass.includes = { i -> i in delegate }
Un poco de azúcar sintáctica
1 in [1,2,3]
def fruitBag = ["orange","banana","coconut"]
def fruit = fruitBag.collect{item -> item.contains(''n'')}
Lo hice así, así que funciona si alguien lo está buscando.