Two Laptop Bag
The moose likes Beginning Java and the fly likes Comparing two Collections for Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Comparing two Collections for "equality"" Watch "Comparing two Collections for "equality"" New topic

Comparing two Collections for "equality"

Gavin Bong
Ranch Hand

Joined: Apr 25, 2003
Posts: 56
I have two Collections A and B. Both contain the same object types.
I want to compare both Collection for equality. This is how I am
doing it now. Pseudocode follows:

Does anybody see any holes in the logic / code above ?
Thanks all
Jeanne Boyarsky
author & internet detective

Joined: May 26, 2003
Posts: 33124

You are assuming that all the objects have an equals method defined? (this assumption is ok, I just want to state it.)
You may run into trouble if the collections contain duplicates. For example if collection a is [X,X,Y] and collection b is [X,Y,Y], your code will not catch the difference.
If the collections can't contain duplicates, the second check for containsAll is redundant.

[OCA 8 book] [Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Other Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, TOGAF part 1 and part 2
Gavin Bong
Ranch Hand

Joined: Apr 25, 2003
Posts: 56
Thanks for your observations.
The parameters "can" and "may" contain duplicates.
I wonder whether I can just simplify it by doing

[ October 01, 2003: Message edited by: Gavin Bong ]
I agree. Here's the link:
subject: Comparing two Collections for "equality"
It's not a secret anymore!