[
https://issues.apache.org/jira/browse/COLLECTIONS-359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas Neidhart resolved COLLECTIONS-359.
-----------------------------------------
Resolution: Fixed
> A ∩ B != B ∩ A when duplicates are present in a list
> --------------------------------------------------------
>
> Key: COLLECTIONS-359
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-359
> Project: Commons Collections
> Issue Type: Bug
> Components: Collection
> Affects Versions: 3.2
> Reporter: Mark Shead
> Fix For: 4.0
>
> Attachments: COLLECTIONS-359.patch
>
>
> When duplicates are present in a list, ListUtils.intersection doesn't behave
> as expected. The intersection of two lists should give the same result
> regardless of which list comes first. ListUtils.intersection(A,B) should
> equal ListUtils.intersection(B,A). This is not the case when the list
> contains duplicates.
> Right now:
> [a, b] ∩ [a, a, b, b] = [a, a, b, b]
> and
> [a, a, b, b] ∩ [a, b] = [a, b]
> Expected behavior:
> [a, a, b, b] ∩ [a, b] = [a, b]
> [a, b] ∩ [a, a, b, b] = [a, b]
> Code demonstrating the problem.
> List A = new ArrayList();
> List B = new ArrayList();
> A.add("a");
> A.add("b");
> B.add("a");
> B.add("a");
> B.add("b");
> B.add("b");
> System.out.println("List A: " + A);
> System.out.println("List B: " + B);
> System.out.println("A ∩ B = " + ListUtils.intersection(A,B));
> System.out.println("B ∩ A = " +ListUtils.intersection(B,A));
> output:
> List A: [a, b]
> List B: [a, a, b, b]
> A ∩ B = [a, a, b, b]
> B ∩ A = [a, b]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira