groovy - 在 ArrayList 上与 groovy 对象相交

标签 groovy

我有两个数组列表,其中包含域类“User”的对象

a = [User : 35, User : 36, User : 37]
b = [User : 32, User : 33, User : 34, User : 35, User : 36, User : 37]

当我执行intersect (java.util)时,它返回一个空列表。如何找到数组列表中的公共(public)对象。

最佳答案

这是因为您将 map (具有相同的 key )保留在列表中。

尝试:

def a = [User1 : 35, User2 : 36, User3 : 37]
def b = [User4 : 32, User5 : 33, User6 : 34, User1 : 35, User2 : 36, User3 : 37]

assert a.intersect(b) == [User1:35, User2:36, User3:37]

当您将其修改为仅包含 ID 时,它的行为将按预期进行:

def a = [35, 36, 37]
def b = [32, 33, 34, 35, 36, 37]

assert a.intersect(b) == [35,36,37]

看到了吗?

关于groovy - 在 ArrayList 上与 groovy 对象相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075984/

相关文章:

grails - 存在该属性时获取groovy.lang.MissingPropertyException

Groovy:WSClient 抛出 JAXBException

java - 具有多个主类的带有 kotlin DSL 的 Gradle 应用程序插件

java - 使用 Groovy 将 bean 序列化和反序列化为 json

groovy - 如何在groovy中提取两个分隔符之间的字符串?

java - 在没有 Grails 的普通 Spring MVC 中使用 GSP View

eclipse - 为什么 Eclipse STS 上没有 Grails 和 Groovy 的代码洞察?

hibernate - Grails级联删除?

Groovy:使用eachWithIndex 方法观察到的不同行为

grails - 检查 View 中变量是否为空