我有一个整数类型的列表,例如:
[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 许可协议
4 回答1.3k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答715 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
add
Set
返回一个布尔值是否已经存在(如果不存在则为true,如果已经存在则为false,请参阅 设置文档)。所以只需遍历所有值: