我有一个整数类型的列表,例如:
[1, 1, 2, 3, 3, 3]
我想要一个返回所有重复项的方法,例如:
[1, 3]
最好的方法是什么?
最佳答案
Set
的add
方法返回一个值是否已经存在的 boolean 值(如果不存在则返回true,如果已经存在则返回false,参见Set documentation)。
所以只需遍历所有值:
public Set<Integer> findDuplicates(List<Integer> listContainingDuplicates) {
final Set<Integer> setToReturn = new HashSet<>();
final Set<Integer> set1 = new HashSet<>();
for (Integer yourInt : listContainingDuplicates) {
if (!set1.add(yourInt)) {
setToReturn.add(yourInt);
}
}
return setToReturn;
}
关于java - 识别列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414667/