2

I have two array lists with objects of a domain class 'User'

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

When I perform intersect (java.util), it returns an empty list. How can I find the common objects in array list.

Joshua Moore
  • 24,706
  • 6
  • 50
  • 73
Syam
  • 575
  • 2
  • 8
  • 25

1 Answers1

4

It's because of the fact that You keep maps (with same key) on the list.

Try:

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]

When You modify it to contain IDs only it behaves as expected:

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

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

See it?

Opal
  • 81,889
  • 28
  • 189
  • 210