我有一个整型数组的列表,我需要找到它们之间的公共元素,我能想到的是Common elements in two lists中所列内容的扩展
Example would be
[1,3,5],
[1,6,7,9,3],
[1,3,10,11]
should result in [1,3]
数组中也没有重复项。
有没有一个直截了当的方法来做到这一点?
我有一个整型数组的列表,我需要找到它们之间的公共元素,我能想到的是Common elements in two lists中所列内容的扩展
Example would be
[1,3,5],
[1,6,7,9,3],
[1,3,10,11]
should result in [1,3]
数组中也没有重复项。
有没有一个直截了当的方法来做到这一点?
8条答案
按热度按时间omqzjyyz1#
您可以将列表转换为集合,然后使用
Set.retainAll
方法求不同集合之间的交集。一旦求出所有集合的交集,就只剩下公共元素,然后可以将结果集合转换回列表。klh5stk12#
您可以使用Guava提供的Set的交集方法,下面是一个小示例:
希望能帮到你
zte4gxcn3#
我们可以使用集合的
retainAll
方法。我用第一个数组列表初始化了我的commons
数组列表,并为每个剩余的数组列表调用了这个方法。wd2eg0qa4#
使用Java 8
z2acfund5#
如果您正在寻找一个返回存在于所有列表中的元素的函数,
那么直接而简单的方法就是构建一个统计信息{〈member,occurrences〉}
这里的条件是在同一个列表中没有重复项,
fbcarpbf6#
vybvopom7#
如果你使用的是JAVA 8流.那么使用流reduce操作也可以达到同样的效果.
考虑您的示例:假设a = [1,3,5],B = [1,6,7,9,3],c = [1,3,10,11]
请记住,在运行此操作后,
a
也将被修改为常用值,因此您将丢失a
的实际值。因此,
a
的元素和commonElements
的结果元素在运行此操作后基本相同。mspsb9vt8#