有没有办法在多个列表中查找常见元素?
2022-09-02 08:56:14
我有一个整数数组列表。我需要找到它们之间的共同要素。我能想到的是两个列表的常见元素中列出的内容的扩展
Example would be
[1,3,5],
[1,6,7,9,3],
[1,3,10,11]
should result in [1,3]
数组中也没有重复项。
有没有一种直接的方法可以做到这一点?
我有一个整数数组列表。我需要找到它们之间的共同要素。我能想到的是两个列表的常见元素中列出的内容的扩展
Example would be
[1,3,5],
[1,6,7,9,3],
[1,3,10,11]
should result in [1,3]
数组中也没有重复项。
有没有一种直接的方法可以做到这一点?
您可以将列表转换为集,然后使用方法在不同集之间进行交集。与所有集相交后,您将只剩下公共元素,并且可以将结果集转换回列表。Set.retainAll
您可以使用Guava提供的Set的交集方法,这里有一个小例子:
public <T> Set<T> intersection(List<T>... list) {
Set<T> result = Sets.newHashSet(list[0]);
for (List<T> numbers : list) {
result = Sets.intersection(result, Sets.newHashSet(numbers));
}
return result;
}
希望对您有所帮助