【发布时间】:2016-05-25 02:46:06
【问题描述】:
如何比较两个 int[] 数组中的重复元素?
例如:int countDifference(int[] arrayA, int[] arrayB) 将两个已排序的数字数组作为输入,并返回仅出现在两个数组之一中的数字的数量。
示例:countdifference([2,4,6,8], [3,4,6,9]) 返回 4 因为 4 和 6 是重复的,剩余数字是2、8、3 和9。
我有一种方法可以计算一个数组的不同元素,但不能计算两个数组的非重复元素。
import java.util.HashSet;
import java.util.Set;
public class countDistinctArray {
public static int distinctNumberOfItems(int[] array) {
if (array.length <= 1) {
return array.length;
}
Set<Integer> set = new HashSet<Integer>();
for (int i : array) {
set.add(i);
}
return set.size();
}
public static void main(String args[]) {
int array[] = { 2, 4, 6, 8, 3, 4, 6, 9 };
System.out.println(distinctNumberOfItems(array));
}
}
【问题讨论】:
-
您可以使用与
distinctNumberOfItems方法相同的方法。只需添加第二个 for 循环,再次从集合中删除元素。 -
我该如何开始呢?我在哪里放置我的 for 循环?
-
如你所说,
4和6是重复的,这意味着2、3、8和9是非重复的,所以正确答案将是 4 的计数,而不是 3。 -
是的对不起,它返回 4 而不是 3!你真是个天才!
标签: java arrays int duplicates