我有两个数组列表,其中包含域类“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/