嘿,我一直在搞乱java并创建这个程序,它会经过一个数组并找到数组中的所有重复项,它的工作非常棒!但有一个小问题,如果我运行该程序,并有一个价值超过2个副本将输出发现相同值的两个副本 - 这可能解释它更好在数组中查找重复项
输出
Duplicates in Array: 1
Duplicates in Array: 8
Duplicates in Array: 8
我一直停留在这一段时间,现在我知道它可能是一些小错误,但如果有人可以帮助我走出这将是真棒,代码如下,感谢
import java.util.Arrays;
public class Duplicates {
public static void main (String[] args) {
int[] values = { 8, 5, 9, 8, 6, 13, 33, 1, 98, 12, 8, 1 };
Arrays.sort(values);
for(int i = 1; i < values.length; i++) {
if(values[i] == values[i - 1]) {
System.out.println("Duplicates in Array: " + values[i]);
}
}
}
}
你应该用一个HashSet,只允许独特的元素,并会自动忽略重复的值。 –
Afforess
2014-10-26 21:54:19
http://stackoverflow.com/questions/7414667/identify-duplicates-in-a-list似乎是一个非常类似的问题 – eee 2014-10-26 21:59:47
好吧,如果你需要找出每个值有多少重复,那么你可以很容易地创建一个Map,然后迭代数组,并将您的数组值作为映射键,并在该条目已存在时增加映射值(对于键)。 –
2014-10-26 22:00:26