如何检查groovy数组/哈希/集合/列表中的元素?

ban*_*623 122 arrays groovy list

如何判断数组是否包含元素?我认为可能会有类似[1, 2, 3].includes(1)评价的东西true.

小智 238

一些语法糖

1 in [1,2,3]
Run Code Online (Sandbox Code Playgroud)

  • 小心.`def m = [a:true]; m'中的'a'→真实但是'def m = [a:false]; 'a'中的m`→false! (29认同)
  • 处理`[a:false]`的方法是使用contains。`[a: false].containsKey('a')` -> true (3认同)

she*_*non 127

.contains()是列表的最佳方法,但对于地图,您需要使用.containsKey()或.containsValue()

[a:1,b:2,c:3].containsValue(3)
[a:1,b:2,c:3].containsKey('a')
Run Code Online (Sandbox Code Playgroud)


ban*_*623 50

对于列表,请使用contains:

[1,2,3].contains(1) == true
Run Code Online (Sandbox Code Playgroud)

  • 可能你想说[1,2,3] .contains(1).因为我猜包含函数本身已经返回一个布尔值.为什么你想再次将它与硬编码的'true'进行比较. (13认同)
  • @HarshayBuradkar为了确保`true == true`,当然是#joke (5认同)

Joh*_*ugh 8

如果你真的想在ArrayList上使用include方法,只需添加它:

ArrayList.metaClass.includes = { i -> i in delegate }
Run Code Online (Sandbox Code Playgroud)


Mag*_*GGG 5

您可以使用 Membership 运算符:

def list = ['Grace','Rob','Emmy']
assert ('Emmy' in list)  
Run Code Online (Sandbox Code Playgroud)

会员运营商 Groovy