我在获取 Java 上几个列表的交集时遇到了麻烦。我正在做的是:我得到(可以说)3个整数列表:
列表 1:[2、2、2、2、5、5]
清单 2:[2, 2, 103]
清单 3:[2, 431]
我使用剩余的每个列表将retainAll应用于第一个:
list1.retainAll(list2);
list1.retainAll(list3);
我得到了这个结果:
list1: [2, 2, 2, 2]
但我希望得到这个:
清单 1:[2]
...因为所有列表共享的唯一元素是一个2 而不是四个2。
我知道这可能是 retainAll 函数的预期行为,但我需要得到我上面提到的结果。
有什么帮助吗?
编辑: 使用 HashSet 禁止重复也不行。在这种情况下,例如:
列表 1:[2、2、2、2、5、5]
清单 2:[2, 2, 103]
清单 3:[2、2、2、431]
我需要得到以下结果:
列表 1: [2, 2] (因为所有列表都至少有一对 2)
代替
清单 1:[2]