我有一个整数类型的列表,例如:
[1, 1, 2, 3, 3, 3]
我想要一种方法来返回所有重复项,例如:
[1, 3]
做这个的最好方式是什么?
原文由 freshest 发布,翻译遵循 CC BY-SA 4.0 许可协议
我也需要一个解决方案。我使用了 leifg 的解决方案并使其通用。
private <T> Set<T> findDuplicates(Collection<T> collection) {
Set<T> duplicates = new LinkedHashSet<>();
Set<T> uniques = new HashSet<>();
for(T t : collection) {
if(!uniques.add(t)) {
duplicates.add(t);
}
}
return duplicates;
}
原文由 John Strickler 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
add
Set
返回一个布尔值是否已经存在(如果不存在则为true,如果已经存在则为false,请参阅 设置文档)。所以只需遍历所有值: